如何配置Zsh的tab键自动补全,以便当我输入cd ..<TAB>
时它会扩展为cd ../
,然后再次按下<TAB>
键,会提示父文件夹中的文件夹供自动补全?
例如,它应该显示与输入cd Documents<TAB>
相同的行为,即将其扩展为cd Documents/
,然后再次按下<TAB>
键,会提示Documents
文件夹中的文件夹供自动补全。
作为配置的起点,我使用一个空的.zshrc
和来自MacPorts的Zsh 4.3.9版本。
如何配置Zsh的tab键自动补全,以便当我输入cd ..<TAB>
时它会扩展为cd ../
,然后再次按下<TAB>
键,会提示父文件夹中的文件夹供自动补全?
例如,它应该显示与输入cd Documents<TAB>
相同的行为,即将其扩展为cd Documents/
,然后再次按下<TAB>
键,会提示Documents
文件夹中的文件夹供自动补全。
作为配置的起点,我使用一个空的.zshrc
和来自MacPorts的Zsh 4.3.9版本。
Debian不稳定版和Ubuntu Jaunty出现同样的问题,它们都使用zsh 4.3.9。我知道有多个人使用不同的配置也遇到了这个问题。
在阅读http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=514152后,我添加了以下内容:
zstyle ':completion:*' special-dirs true
我更新了我的配置文件,现在一切都正常工作。
man zshcompsys
也建议使用以下代码:
zstyle -e ':completion:*' special-dirs '[[ $PREFIX = (../)#(|.|..) ]] && reply=(..)'
,这可以避免始终建议使用"./"和"../"。 - exic.zshrc
文件中,如果加入到.zprofile
文件中是无效的。 - TMOTTMPut this into your ~/.zshrc:
autoload -Uz compinit
compinit
还有一个针对Mac OS X的zsh函数/配置项目,在http://code.google.com/p/zsh-templates-osx/上。个人认为使用整个软件包有些浪费,但是可以从中挑选一些技巧、函数、自动完成等,并创建自己的.zshrc文件,我觉得很有用。.
和 ..
文件夹没有被自动补全。 :P 这是怎么回事? - Victor Zamanian这个答案可能有用,也可能没用 - 切换到 bash,它可以直接完成你想要的功能。