我已经在我的中设置了这个功能~/.zshrc
:
cdp() {
cd "/mnt/c/Users/Mark/PhpstormProjects/$1"
}
但我没有得到它的制表符补全。有什么方法可以让目录名称在我按 Tab 键时自动完成吗?
答案1
定义一个完成功能为了cdp
。按照惯例,该函数称为_cdp
。您可以在您的中定义它.zshrc
并显式分配它compdef
。
_cdp () {
… # code goes here
}
compdef _cdp cdp
或者,将完成代码放入您$fpath
调用_cdp
的文件中完成自动加载指令。
#compdef cdp
… # code goes here
要完成目录,请使用_files -/
。要完成相对于当前目录不同位置的目录,请使用选项-W
。由于该函数只接受一个参数,只完成第一个参数。
_cdp () {
((CURRENT == 2)) &&
_files -/ -W /mnt/c/Users/Mark/PhpstormProjects
}
除了此功能之外,您可能更喜欢也可能不喜欢将目录添加到cdpath
。
cdpath+=/mnt/c/Users/Mark/PhpstormProjects