全局别名的 Zsh 补全
Zsh completion for global aliases
有没有办法在 zsh 中为全局别名完成制表符补全?定义为:
% alias -g zshplugins=~/.zshplugins
% nvim zshpl[tab]
无法完成制表符。
我使用全局别名主要是为了不必输入文件路径,也不必将自己限制在单个命令(例如,alias zshplugin="nvim ~/.zshplugins"
)
我知道这些也可以在任意单行内使用(例如 | grep -i
的全局别名)并且在每个制表符笔画上都建议没有意义,但是如果有将这些包含在 directory/file 完成中的一些解决方法,那就太好了。
zshpl[tab]
会在行首完成(不包括 nvim)吗?这是我应该做的。别名并不意味着用作文件名的快捷方式。 Shell 变量可用于后者(并且它们也有完成)。我建议你定义
zshplugins=~/.zshplugins
然后
nvim $zshpl[tab]
您应该使用 shell 变量而不是全局别名。
但如果您愿意,请将以下代码添加到您的 zshrc
_complete_alias() {
[[ -n $PREFIX ]] && compadd -- ${(M)${(k)galiases}:#$PREFIX*}
return 1
}
zstyle ':completion:*' completer _complete_alias _complete _ignored
有没有办法在 zsh 中为全局别名完成制表符补全?定义为:
% alias -g zshplugins=~/.zshplugins
% nvim zshpl[tab]
无法完成制表符。
我使用全局别名主要是为了不必输入文件路径,也不必将自己限制在单个命令(例如,alias zshplugin="nvim ~/.zshplugins"
)
我知道这些也可以在任意单行内使用(例如 | grep -i
的全局别名)并且在每个制表符笔画上都建议没有意义,但是如果有将这些包含在 directory/file 完成中的一些解决方法,那就太好了。
zshpl[tab]
会在行首完成(不包括 nvim)吗?这是我应该做的。别名并不意味着用作文件名的快捷方式。 Shell 变量可用于后者(并且它们也有完成)。我建议你定义
zshplugins=~/.zshplugins
然后
nvim $zshpl[tab]
您应该使用 shell 变量而不是全局别名。
但如果您愿意,请将以下代码添加到您的 zshrc
_complete_alias() {
[[ -n $PREFIX ]] && compadd -- ${(M)${(k)galiases}:#$PREFIX*}
return 1
}
zstyle ':completion:*' completer _complete_alias _complete _ignored