【问题标题】:Zsh bookmark directories with tab completion?带有标签完成的Zsh书签目录?
【发布时间】:2012-02-17 15:07:23
【问题描述】:

我想要什么:

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,但我想要更轻量级的东西。

【问题讨论】:

    标签: zsh zshrc zsh-completion


    【解决方案1】:

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

    例如,

    This link 注意到在提示符下键入 /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 提供的功能,无需启用;如果没有,第一个链接或oh-my-zsh 甚至some version of the ZSH manual 中的某个地方的详细信息应该会有所帮助。 (我觉得手册有点……压倒性的,至少可以这么说)。

    我不认为你需要编写一个函数来实现这种行为——zsh 绝对可以做到。

    【讨论】:

    • 我决定使用 fasd github.com/clvv/fasd,这是解决我的问题的另一种方法。但是,谢谢,您完全正确的 Zsh 自动完成功能具有我要求的大部分功能。
    猜你喜欢
    • 1970-01-01
    • 2011-11-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多