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