Zsh Mailing List Archive
Messages sorted by:
Reverse Date,
Date,
Thread,
Author
Re: merging consecutive cd commands
- X-seq: zsh-users 4566
- From: "Bart Schaefer" <schaefer@xxxxxxxxxxxxxxxx>
- To: Le Wang <lewang@xxxxxxxxx>, Zsh users list <zsh-users@xxxxxxxxxx>
- Subject: Re: merging consecutive cd commands
- Date: Sun, 6 Jan 2002 05:32:12 +0000
- In-reply-to: <20011222235104.84129.qmail@xxxxxxxxxxxxxxxxxxxxxxx>
- Mailing-list: contact zsh-users-help@xxxxxxxxxx; run by ezmlm
- References: <20011222235104.84129.qmail@xxxxxxxxxxxxxxxxxxxxxxx>
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