0

有没有办法让 zsh 中的全局别名完成制表符?定义为:

% alias -g zshplugins=~/.zshplugins

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

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

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

4

2 回答 2

1

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

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

_complete_alias() {
    [[ -n $PREFIX ]] && compadd -- ${(M)${(k)galiases}:#$PREFIX*}
    return 1
}
zstyle ':completion:*' completer _complete_alias _complete _ignored
于 2019-12-28T17:05:27.800 回答
0

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

zshplugins=~/.zshplugins

然后做

nvim $zshpl[tab]
于 2019-12-28T16:10:41.257 回答