* merging consecutive cd commands
@ 2001-12-22 23:51 Le Wang
2002-01-06 5:32 ` Bart Schaefer
0 siblings, 1 reply; 2+ messages in thread
From: Le Wang @ 2001-12-22 23:51 UTC (permalink / raw)
To: Zsh users list
Hi,
Is there an option that allows consecutive cd or pushd
commands to modify the top entry in the cd stack and
command history, instead of adding to it?
e.g.
---------------------------
LE-XP% setopt autopushd
LE-XP% cd temp
LE-XP% cd temp2
LE-XP% dirs
~/temp/temp2 ~/temp ~
LE-XP% history
1 setopt autopushd
2 cd temp
3 cd temp2
4 dirs
LE-XP%
---------------------------
becomes
---------------------------
LE-XP% setopt autopushd
LE-XP% cd temp
LE-XP% cd temp2
LE-XP% dirs
~/temp/temp2 ~
LE-XP% history
1 setopt autopushd
2 cd temp/temp2
4 dirs
LE-XP%
---------------------------
Thanks
-lw
______________________________________________________
Send your holiday cheer with http://greetings.yahoo.ca
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: merging consecutive cd commands
2001-12-22 23:51 merging consecutive cd commands Le Wang
@ 2002-01-06 5:32 ` Bart Schaefer
0 siblings, 0 replies; 2+ messages in thread
From: Bart Schaefer @ 2002-01-06 5:32 UTC (permalink / raw)
To: Le Wang, Zsh users list
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
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2002-01-06 4:40 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2001-12-22 23:51 merging consecutive cd commands Le Wang
2002-01-06 5:32 ` Bart Schaefer
Code repositories for project(s) associated with this public inbox
https://git.vuxu.org/mirror/zsh/
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).