【发布时间】:2018-10-31 05:30:56
【问题描述】:
前几天我发现了这个导航小技巧,它可以让我在输入“cd -”时按数字触发菜单完成
~ cd -
0 -- ~/home
1 -- ~/home/stuff
2 -- ~/downloads
3 -- ~/wallpaper
Shell 脚本语法对我来说仍然像一门外语,但要获得此功能,我的目录堆栈历史记录将通过管道传输到下面的函数中。
DIRSTACKSIZE=9
DIRSTACKFILE=~/.zdirs
if [[ -f $DIRSTACKFILE ]] && [[ $#dirstack -eq 0 ]];
then dirstack=( ${(f)"$(< $DIRSTACKFILE)"} )
[[ -d $dirstack[1] ]] && cd $dirstack[1] && cd $OLDPWD
fi
chpwd() {
print -l $PWD ${(u)dirstack} >$DIRSTACKFILE
}
神奇的部分是能够从列表中按数字进行选择,但我了解到这可能是 因为按数字导航的功能包含在“cd -”命令中。不过,我想在任何地方都使用它。
为完成菜单编写包装函数(或类似的东西,我猜)的任何提示,当它被触发时,它会从菜单中输入完成 并将它们显示在编号列表中,其中这些数字选择相应的元素?
我已经开始阅读手册以及其他内容,但所有内容仍然相当不透明。谢谢!
【问题讨论】:
标签: zsh oh-my-zsh zsh-completion