【发布时间】:2012-11-16 21:08:03
【问题描述】:
Vim 有一个“smartcase”特性,它使搜索不区分大小写,但前提是搜索包含所有小写字母。当您搜索任何大写字母时,smartcase 会假定您需要区分大小写的搜索。有没有办法在 zsh 的 tab 补全中获得相同的行为?
【问题讨论】:
标签: zsh zsh-completion
Vim 有一个“smartcase”特性,它使搜索不区分大小写,但前提是搜索包含所有小写字母。当您搜索任何大写字母时,smartcase 会假定您需要区分大小写的搜索。有没有办法在 zsh 的 tab 补全中获得相同的行为?
【问题讨论】:
标签: zsh zsh-completion
看看我的 zshrc 文件。
https://github.com/martincanaval/arch-conf/tree/master/etc/zsh
我有你想要的功能,我相信这条线成功了。
zstyle ':completion:*' matcher-list 'm:{a-z}={A-Z}'
【讨论】:
m:{a-zA-Z}={A-Za-z} 我从某个地方复制的,我只是用它替换了它。有趣的是,Vim 中 smartcase 的确切含义是,如果整个字符串包含任何大写字母,则它是区分大小写的。在这个 zsh 变体中,只有字符串中的大写字母是区分大小写的。我想我实际上更喜欢这种方式。
autoload -U compinit && compinit 来进行不区分大小写的补全工作。
zstyle ':completion:*' matcher-list '' '+m:{a-zA-Z}={A-Za-z}' '+r:|[._-]=* r:|=*' '+l:|=* r:|=*' 更允许。