如何解决在zsh
我正在使用zsh。
我有一个命令foo
,我使用alias foo="sudo foo"
作为快捷方式。我希望zsh就像输入foo
一样完成命令。
我在Google上搜索了compdef _foo f=foo
,可以对其进行处理。当我输入f something<tab>
时,补全工作正常。但是,当我先尝试compdef _foo foo=foo
然后再尝试foo something<tab>
时,它将无法正常工作。
当我使用与原始命令同名的别名时,是否可以处理制表符完成?
解决方法
问题实际上是我身上发生的一种特殊情况。
正如@blueray所说,zsh能够正常完成let counter = 0;
function test(n) {
counter <= 50 ? proba(c.log(counter++)) : null;
}
test(80);
之类的命令或别名。
由于@rcwnd_cz,我发现添加sudo foo
解决了我的问题。关键是我在将setopt complete_aliases
映射到sudo
的其他地方设置了别名。结果,sudo FOO=bar
是“别名别名”,而zsh拒绝完成它。设置alias foo="sudo foo"
可以完美解决。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。