如何在没有 Ohmyzsh 的情况下完成不区分大小写的完成?

How to get case-insensitive completions without Ohmyzsh?

我正在使用 OHMYZSH,但我正在考虑为 Zsh 构建一个最小配置。

问题来了。 Ohmyzsh 有特殊的完成行为。例如:如果我在我的主目录中键入 cd mus 并按 TAB 键,它会扩展为 cd Music,即使我正在键入带有小写字母的句子。

我创建了这个:

Have zsh return case-insensitive auto-complete matches, but prefer exact matches

这是我的问题,但恰恰相反。我想在不安装 OHMYZSH 的情况下获得 case insensitive

查看 OHMYZSH 结构,我发现了这个:

。 ├── ./cache

├── ./CODE_OF_CONDUCT.md

├── ./CONTRIBUTING.md

├── ./custom

├── ./lib

├── ./LICENSE.txt

├── ./log

├── ./oh-my-zsh.sh

├── ./plugins

├── ./README.md

├── ./templates

├── ./themes

└── ./tools

8个目录,5个文件

在lib文件夹里面,有一些配置文件。

lib

├── bzr.zsh

├── clipboard.zsh

├── cli.zsh

├── compfix.zsh

├── completion.zsh

├── correction.zsh

├── diagnostics.zsh

├── directories.zsh

├── functions.zsh

├── git.zsh

├── grep.zsh

├── history.zsh

├── 键-bindings.zsh

├── misc.zsh

├── nvm.zsh

├── prompt_info_functions.zsh

├── spectrum.zsh

├── termsupport.zsh

└──主题与-appearance.zsh

0 个目录,19 个文件

我已经尝试使用 Zinit(ZSH 的插件管理器,它可以加载一些 OHMYZSH 的东西)来获取 completion.zsh,但没有成功。我不知道我想要的行为的正确文件是什么。

这是我的配置:

#exports
export EDITOR=nvim
export VISUAL=code
export SUDO_EDITOR=nvim

# Theme
ZSH_THEME="spaceship"

#PLUGINS
#==============================================================
source "$HOME/.zinit/bin/zinit.zsh"
autoload -Uz _zinit
(( ${+_comps} )) && _comps[zinit]=_zinit

zinit light zdharma/fast-syntax-highlighting
zinit light zsh-users/zsh-autosuggestions
zinit light zsh-users/zsh-completions
zinit light agkozak/zsh-z

#THIS LINE IS MY ATTEMPT TO load OHMYZSH FILES
zinit snippet OMZL::completion.zsh
#==============================================================
### End of Zinit's installer chunk

要加载的正确文件是什么?还是有其他方法可以 case insensitive 完成?

在阅读了一些评论后,我找到了解决方案。将这两行添加到 Zsh 配置文件中:

zstyle ':completion:*' matcher-list '' 'm:{a-zA-Z}={A-Za-z}' 'r:|=*' 'l:|=* r:|=*'
autoload -Uz compinit && compinit