如何在没有 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
我正在使用 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