Zsh Mailing List Archive
Messages sorted by: Reverse Date, Date, Thread, Author

Re: merging consecutive cd commands

On Dec 22,  6:51pm, Le Wang wrote:
} Is there an option that allows consecutive cd or pushd
}  commands to modify the top entry in the cd stack

That would be what happens when autopushd is not set, wouldn't it?

} and command history, instead of adding to it?

There's currently no option or other mechanism that allows altering an
existing history entry (unless you count hist_ignore_space).  We've
talked about making editable the $history association, but haven't come
up with a working solution yet.

} e.g.
} ---------------------------
} LE-XP% setopt autopushd
} LE-XP% cd temp
} LE-XP% cd temp2
} LE-XP% dirs
} ~/temp/temp2 ~
} LE-XP%
} ---------------------------

I suspect that what you mean is that you want autopushd only when NOT
changing to a subdirectory of the current directory.  You can simulate
that with something like this:

    chpwd() {
      # setopt localoptions pushd_silent no_pushd_minus # as needed
      [[ ~0 = ~1/* ]] && popd +1

Or you can manipulate the $dirstack array if you have the zsh/parameter
module loaded:

    chpwd() {
      # setopt localoptions no_ksh_arrays # if needed
      [[ $PWD = $dirstack[1]/* ]] && dirstack[1]=()

Or you can write your own cd and/or chdir functions and do it in those.

Bart Schaefer                                 Brass Lantern Enterprises
http://www.well.com/user/barts              http://www.brasslantern.com

Zsh: http://www.zsh.org | PHPerl Project: http://phperl.sourceforge.net   

Messages sorted by: Reverse Date, Date, Thread, Author