Add zsh/oh my zsh/w10k
This commit is contained in:
9
zsh/.oh-my-zsh/plugins/dirpersist/README.md
Normal file
9
zsh/.oh-my-zsh/plugins/dirpersist/README.md
Normal file
@ -0,0 +1,9 @@
|
||||
# Dirpersist plugin
|
||||
|
||||
This plugin keeps a running tally of the previous 20 unique directories in the $HOME/.zdirs file. When you cd to a new directory, it is prepended to the beginning of the file.
|
||||
|
||||
To use it, add `dirpersist` to the plugins array in your zshrc file:
|
||||
|
||||
```zsh
|
||||
plugins=(... dirpersist)
|
||||
```
|
21
zsh/.oh-my-zsh/plugins/dirpersist/dirpersist.plugin.zsh
Normal file
21
zsh/.oh-my-zsh/plugins/dirpersist/dirpersist.plugin.zsh
Normal file
@ -0,0 +1,21 @@
|
||||
# Save dirstack history to .zdirs
|
||||
# adapted from:
|
||||
# github.com/grml/grml-etc-core/blob/master/etc/zsh/zshrc#L1547
|
||||
|
||||
DIRSTACKSIZE=${DIRSTACKSIZE:-20}
|
||||
dirstack_file=${dirstack_file:-${HOME}/.zdirs}
|
||||
|
||||
if [[ -f ${dirstack_file} ]] && [[ ${#dirstack[*]} -eq 0 ]] ; then
|
||||
dirstack=( ${(f)"$(< $dirstack_file)"} )
|
||||
# "cd -" won't work after login by just setting $OLDPWD, so
|
||||
[[ -d $dirstack[1] ]] && cd $dirstack[1] && cd $OLDPWD
|
||||
fi
|
||||
|
||||
autoload -U add-zsh-hook
|
||||
add-zsh-hook chpwd chpwd_dirpersist
|
||||
chpwd_dirpersist() {
|
||||
if (( $DIRSTACKSIZE <= 0 )) || [[ -z $dirstack_file ]]; then return; fi
|
||||
local -ax my_stack
|
||||
my_stack=( ${PWD} ${dirstack} )
|
||||
builtin print -l ${(u)my_stack} >! ${dirstack_file}
|
||||
}
|
Reference in New Issue
Block a user