chezmoi init
This commit is contained in:
commit
530d6d7195
1176 changed files with 111325 additions and 0 deletions
60
dot_oh-my-zsh/plugins/scd/_scd
Normal file
60
dot_oh-my-zsh/plugins/scd/_scd
Normal file
|
@ -0,0 +1,60 @@
|
|||
#compdef scd
|
||||
#description smart change directory
|
||||
|
||||
local curcontext="$curcontext" state line expl ret=1
|
||||
typeset -A opt_args
|
||||
|
||||
local -a indexopts myargs
|
||||
indexopts=( --add -a --unindex )
|
||||
|
||||
myargs=(
|
||||
# common options
|
||||
"(--help -h)"{--help,-h}"[print help and exit]"
|
||||
|
||||
# options for manipulating directory index
|
||||
- index
|
||||
"(--recursive -r)"{--recursive,-r}"[use recursive --add or --unindex]"
|
||||
"($indexopts)"{--add,-a}"[add specified directories to the index]"
|
||||
"($indexopts)--unindex[remove specified directories from the index]"
|
||||
"*:directory:{ (( ${words[(I)-a|--add|--unindex]} )) && _path_files -/ }"
|
||||
|
||||
# define new directory alias
|
||||
- alias
|
||||
"--alias=[create alias for this or given directory]:directory-alias:()"
|
||||
'1:directory:{ (( words[(I)--alias*] )) && _path_files -/ }'
|
||||
|
||||
# remove definition of directory alias
|
||||
- unalias
|
||||
"--unalias[remove definition of directory alias]"
|
||||
"*::directory alias:->scd-alias-target"
|
||||
|
||||
# act on the directory change
|
||||
- scd
|
||||
"(--all -A)"{--all,-A}"[include less likely and ignored paths]"
|
||||
"--list[print matching directories and exit]"
|
||||
"(--verbose -v)"{--verbose,-v}"[show directory ranking and full paths]"
|
||||
"(--push -p)"{--push,-p}"[change directory with 'pushd']"
|
||||
"1::directory alias:->scd-alias-target"
|
||||
"*:patterns:()"
|
||||
)
|
||||
|
||||
_arguments -S -C $myargs && ret=0
|
||||
|
||||
|
||||
if [[ "$state" == scd-alias-target && -s ~/.scdalias.zsh ]]; then
|
||||
local -a scdaliases
|
||||
scdaliases=( )
|
||||
eval "$(setopt extendedglob
|
||||
phome="(#b)(#s)${HOME}(/*)#(#e)"
|
||||
builtin hash -dr
|
||||
source ~/.scdalias.zsh &&
|
||||
for k v in ${(kv)nameddirs}; do
|
||||
scdaliases+=( $k:${v/${~phome}/"~"${match[1]}} )
|
||||
done
|
||||
complete_unalias=${+opt_args[unalias---unalias]}
|
||||
if (( complete_unalias && ! ${+nameddirs[OLD]} )); then
|
||||
scdaliases+=( 'OLD:all aliases to non-existent paths' )
|
||||
fi
|
||||
typeset -p scdaliases )"
|
||||
_describe -t scdaliases scdalias scdaliases
|
||||
fi
|
Loading…
Add table
Add a link
Reference in a new issue