首页 > 解决方案 > 如何在没有 Ohmyzsh 的情况下获得不区分大小写的完成?

问题描述

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

所以这就是问题所在。Ohmyzsh 具有完成的特殊行为。例如:如果我在我的主目录中输入cd mus并点击 TAB,它会扩展为cd Music,即使我正在输入带有小写字母的句子。

我建立了这个:

让 zsh 返回不区分大小写的自动完成匹配,但更喜欢完全匹配

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

查看 OHMYZSH 结构,我发现:

. ├── ./缓存

├── ./CODE_OF_CONDUCT.md

├── ./CONTRIBUTING.md

├── ./自定义

├── ./lib

├── ./LICENSE.txt

├── ./log

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

├── ./plugins

├── ./README.md

├── ./模板

├── ./主题

└── ./工具

8个目录,5个文件

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

├── bzr.zsh

├──剪贴板.zsh

├── cli.zsh

├── compfix.zsh

├── 完成.zsh

├── 修正.zsh

├── 诊断.zsh

├── 目录.zsh

├── 函数.zsh

├── git.zsh

├── grep.zsh

├── history.zsh

├── key-bindings.zsh

├── misc.zsh

├── nvm.zsh

├── prompt_info_functions.zsh

├── 频谱.zsh

├── termsupport.zsh

└── 主题和外观.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完成?

标签: shellzshoh-my-zsh

解决方案


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

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

推荐阅读