隐藏zsh自动完成中的某些选项

时间:2010-11-04 18:57:53

标签: zsh tab-completion

有几个命令具有我不经常使用的深奥选项。例如,git有'check-attr'。我经常使用'git checkout',所以我想,   git ch 完成   git checkout 或显示没有check-attr的菜单。我可以用zstyle ... ignored-patterns来做到这一点。

但是,如果没有其他内容匹配(如果我实际想要运行check-attr),我仍然想完成'git check-attr'。

似乎'隐藏'的zstyle适合我,但是如何在完成上下文中指定值(而不仅仅是标记)?即我喜欢类似的东西, zstyle':完成::git:'hidden-patterns'check-attr'

这可能吗?

2 个答案:

答案 0 :(得分:2)

我真的不知道这是如何工作的,但结果是git check<TAB>导致了git checkout。将其添加到您的.zshrc

zstyle ':completion::complete:git:*:*' ignored-patterns 'check*-*'

请参阅http://zsh.sourceforge.net/Doc/Release/Completion-System.html#Overview-1了解一些信息,如果你能解密它的话......

答案 1 :(得分:1)

这样的事情可以解决问题:

zstyle ':completion::complete:*:git:*' ignored-patterns check-attr