zsh 中具有相同名称的别名的制表符补全
Tab completion for alias with the same names in zsh
我正在使用 zsh。
我有一个命令 foo
,我使用 alias foo="sudo foo"
作为快捷方式。我希望 zsh 像我输入的那样完成命令 foo
.
我用谷歌搜索并找到 compdef _foo f=foo
可以处理它。当我键入 f something<tab>
时,完成工作正常。但是当我尝试 compdef _foo foo=foo
然后 foo something<tab>
时,它不起作用。
当我使用与原始命令同名的别名时,有没有办法处理 Tab 补全?
这个问题其实是我遇到的特例
正如@blueray 所说,zsh 能够正常完成像 sudo foo
或它的别名这样的命令。
感谢@rcwnd_cz ,我发现添加 setopt complete_aliases
解决了我的问题。关键是我在其他地方设置了一个别名,将 sudo
映射到 sudo FOO=bar
。结果,alias foo="sudo foo"
是一个“别名中的别名”,zsh 拒绝完成它。设置setopt complete_aliases
完美解决
我正在使用 zsh。
我有一个命令 foo
,我使用 alias foo="sudo foo"
作为快捷方式。我希望 zsh 像我输入的那样完成命令 foo
.
我用谷歌搜索并找到 compdef _foo f=foo
可以处理它。当我键入 f something<tab>
时,完成工作正常。但是当我尝试 compdef _foo foo=foo
然后 foo something<tab>
时,它不起作用。
当我使用与原始命令同名的别名时,有没有办法处理 Tab 补全?
这个问题其实是我遇到的特例
正如@blueray 所说,zsh 能够正常完成像 sudo foo
或它的别名这样的命令。
感谢@rcwnd_cz ,我发现添加 setopt complete_aliases
解决了我的问题。关键是我在其他地方设置了一个别名,将 sudo
映射到 sudo FOO=bar
。结果,alias foo="sudo foo"
是一个“别名中的别名”,zsh 拒绝完成它。设置setopt complete_aliases
完美解决