只有当我键入大写字母时,才具有区分大小写的zsh自动完成匹配

  • 本文关键字:zsh 大小写 大写字母 zsh
  • 更新时间 :
  • 英文 :


如果我键入小写,如何使zsh自动完成为我提供不区分大小写的匹配,但如果我键入大写,如何使其提供区分大小写匹配?例如,如果我键入";HO选项卡";它应该提供HOMEHOST;ho选项卡";它应该提供HOMEHOSThosthostinfohostname

不区分大小写的部分很容易(matcher-list m:{a-zA-Z}={A-Za-z}(,我发现Have zsh返回不区分大小大小写的自动完全匹配,但更喜欢精确匹配,但这不是我想要的——如果有任何精确的小写匹配,它不会提供大写匹配。我怀疑答案与左锚火柴有关,但我无法让它发挥作用。

我最初想的是,如果键入的字符串包含任何大写字符,那么它应该完全匹配。我仍然不知道该怎么做。然而,对于我的目的来说,一个稍微放松的形式就足够了:

  1. 小写字符应匹配大小写字符
  2. 大写字符应仅与其自身匹配

这样构建,答案很明显:删除我现有的完全不区分大小写的matcher-list样式(m:{a-zA-Z}={A-Za-z}(,并将其替换为:

zstyle ':completion:*' matcher-list 'm:{a-z}={A-Z}'

最新更新