zsh compctl补全对含连字符的命令不触发的问题求助
zsh compctl补全对含连字符的命令不触发的问题求助
我从90年代末/00年代初就一直在用zsh的compctl,说起来也奇怪,之前从来没碰到过这个问题。
今天本来想给update-alternatives配置compctl补全规则,结果发现自定义补全完全没触发,只会用默认的文件补全逻辑。
我整理了一个极简示例来复现这个问题:
正常工作的场景(命令名无连字符)
执行这条配置:
zshprompt% compctl -k '(arg1 arg2 arg3)' nodash
输入nodash 后按一次Tab:
zshprompt% nodash arg
再按一次Tab,就能看到预期的补全选项:
zshprompt% nodash arg arg1 arg2 arg3
异常场景(命令名带连字符)
先看一下当前目录的文件,作为参考:
zshprompt% ls . file2.txt myfile1.txt
同样配置补全规则:
zshprompt% compctl -k '(arg1 arg2 arg3)' with-dash
输入with-dash 后按Tab,结果触发的是默认的文件补全:
zshprompt% with-dash file2.txt myfile1.txt
我翻了zshcompctl的手册页,也搜了不少网上的内容,都没找到相关的解决方案。有没有大佬能指点一下,怎么让compctl正确匹配名称带连字符的命令?
提前谢过各位了!
备注:内容来源于stack exchange,提问作者flax
相关产品推荐
相关产品推荐

