Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
全局别名的Zsh补全_Zsh_Zsh Completion_Zsh Alias - Fatal编程技术网

全局别名的Zsh补全

全局别名的Zsh补全,zsh,zsh-completion,zsh-alias,Zsh,Zsh Completion,Zsh Alias,有没有办法在zsh中完成全局别名的制表符?定义为: % alias -g zshplugins=~/.zshplugins %nvim zshpl[选项卡]无法完成选项卡 我使用全局别名主要是为了不必输入文件路径,也不必将自己限制在单个命令中(例如,alias zshplugin=“nvim~/.zshplugins”) 我知道这些代码也可以在任意的单行程序中使用(例如,| grep-I的全局别名),在每个制表符笔划上提出建议是没有意义的,但是如果有一些解决方法可以在目录/文件完成中包含这些代

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

% alias -g zshplugins=~/.zshplugins
%nvim zshpl[选项卡]
无法完成选项卡

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


我知道这些代码也可以在任意的单行程序中使用(例如,
| grep-I
的全局别名),在每个制表符笔划上提出建议是没有意义的,但是如果有一些解决方法可以在目录/文件完成中包含这些代码,那就太好了。

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