1

我想要的是:

cd c/ra<tab>完成~/code/rails-appcd c/<tab>显示其中的目录列表~/code


我目前拥有的:

c ra<tab>c rails-app如果我有一个目录~/code/rails-appc <tab>显示其中的目录列表,则完成~/code

通过在我的.zshrc

c() { cd ~/code/$1; }
_c() { _files -W ~/code -/; }
compdef _c c


这个工具看起来很有前途:https ://github.com/flavio/jump但我想要更轻量级的东西。

4

1 回答 1

3

至少对于目录而言,您所描述的选项卡完成应该zsh无需编写zsh函数即可完成。

例如,此链接/u/l/b指出,键入会在提示符上tab展开。/usr/local/bin

这对我有用 - 如果我创建~/code/rails-app这样的目录:

zsh% ls ~/code
another-app       another-dir rails-app
zsh% ls ~/code/rails-app
one two

然后:

zsh% cd c/ra<TAB> # this expands to 'cd code/rails-app'
zsh% cd c/<TAB><TAB> # Double tab, one to expand "c" to "code", 
zsh% #               # second gives me the zsh-completion menu

我无法指出zsh这是哪个选项 - 我正在使用经过大量修改~/.zshrcoh-my-zsh. 这可能zsh无需启用即可提供的功能;如果没有,第一个链接或ZSH 手册中oh-my-zsh某处甚至某些版本的详细信息应该会有所帮助。(我觉得手册有点……压倒性的,至少可以这么说)。

我不相信你需要编写一个函数来实现这种行为——zsh绝对能够做到。

于 2012-05-16T20:56:31.127 回答