mpen Asked: 2019-09-16 11:34:51 +0800 CST2019-09-16 11:34:51 +0800 CST 2019-09-16 11:34:51 +0800 CST 如何将别名设置为 cd 到带有完成的子目录? 772 我已经在我的~/.zshrc: cdp() { cd "/mnt/c/Users/Mark/PhpstormProjects/$1" } 但我没有得到它的标签完成。有没有办法让我在选项卡时自动完成目录名称? zsh 1 个回答 Voted Best Answer Gilles 'SO- stop being evil' 2019-09-16T12:07:40+08:002019-09-16T12:07:40+08:00 为定义一个完成函数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
为定义一个完成函数
cdp
。按照惯例,该函数被调用_cdp
。您可以在您的中定义它.zshrc
并使用compdef
.或者,使用完成自动加载指令将完成代码放入您
$fpath
调用的文件中。_cdp
要完成目录,请使用
_files -/
. 要完成与当前目录不同的位置的目录,请使用-W
选项。由于这个函数只接受一个参数,所以只完成第一个参数。除了此功能,您可能更喜欢将目录添加到
cdpath
.