【问题标题】:Zsh completion for global aliases全局别名的 Zsh 补全
【发布时间】:2019-12-28 15:46:53
【问题描述】:

有没有办法在 zsh 中获得全局别名的制表符补全?定义为:

% alias -g zshplugins=~/.zshplugins

% nvim zshpl[tab] 不会完成制表符。

我使用全局别名主要是为了不必输入文件路径,也不必将自己限制为单个命令(例如,alias zshplugin="nvim ~/.zshplugins"

我知道这些也可以在任意单行中使用(例如,| grep -i 的全局别名)并且在每个选项卡笔划上都建议是没有意义的,但是如果有一些解决方法可以包括这些在目录/文件完成中,那就太好了。

【问题讨论】:

    标签: zsh zsh-completion zsh-alias


    【解决方案1】:

    你应该使用 shell 变量而不是全局别名。

    但是,如果您愿意,请将以下代码添加到您的 zshrc

    _complete_alias() {
        [[ -n $PREFIX ]] && compadd -- ${(M)${(k)galiases}:#$PREFIX*}
        return 1
    }
    zstyle ':completion:*' completer _complete_alias _complete _ignored
    

    【讨论】:

      【解决方案2】:

      zshpl[tab] 是否会在行首完成(省略 nvim)?这是我应该做的。别名并不意味着用作文件名的快捷方式。 Shell 变量可用于后者(它们也有完成)。我建议你定义

      zshplugins=~/.zshplugins
      

      然后做

      nvim $zshpl[tab]
      

      【讨论】:

        猜你喜欢
        • 2014-09-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多