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

Re: persistant Directory history?



Finally this worked for me  just perfect :)  . i got it from
http://www.zsh.org/mla/users/2006/msg00173.html

DIRSTACKSIZE=20
if [[ -f ~/.zdirs ]] && [[ ${#dirstack[*]} -eq 0 ]]; then
dirstack=( $(< ~/.zdirs) )
popd > /dev/null
fi
precmd() {
dirs -l >! ~/.zdirs # added -l
}
cd

The only problem with the above was that a new shell would start with
the last directory. So I added the extra 'cd' at the end :D
Thanks all

On 11/7/06, Francisco Borges <f.borges@xxxxxx> wrote:
: On Mon, Nov 06, 2006 at 10:15PM +0530, chesss wrote:

> Basically I want to save the directory stack automatically and have
> ctrl+r like history..
> Possible?

I really wish the zsh-devs would include something for this in Zsh.
After I started having a persistent dirstack, I really had to wonder how
I had lived without it for so long :-)

Turns out there is a lot of people with custom ways to implement it.

[...]

As Stephane pointed out, all you need to do is to somehow set the
dirstack variable when you log in.

But I rather rewrite the zsh_dir_file everytime I change dirs. instead
of only after logout. Also (making a long story short) right after
login, just setting $OLDPWD won't allow you to use

% cd -

so I force the shell to visit the first dir in the stack to be able to
have this.

#-------------------------------------------------
# http://www.zsh.org/mla/users/2006/msg00173.html
# Adding a (rather primitive) dirstack history
DIRSTACKSIZE=20
if [[ -f ~/.zdirs ]] && [[ ${#dirstack[*]} -eq 0 ]]; then
    dirstack=( ${(uf)"$(< ~/.zdirs)"} )
    # "cd -" won't work after login by just setting $OLDPWD, so
    cd $dirstack[0] && cd - > /dev/null
fi
chpwd() { dirs -pl >! ~/.zdirs }
#-------------------------------------------------

My 2 cents on the topic....

Cheers,
--
Francisco Borges





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