Zsh tab补全无法工作

12
尽管我以前使用过Oh-My-Zsh,但这次(即在设置新电脑时)我决定尝试避免安装它以使事情更简单。现在我正在尝试挑选Oh-My-Zsh的不区分大小写的tab补全功能。在其源代码库中寻找,我发现以下行:

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

我相当有信心这是Oh-My-Zsh执行所需的行为,因此我尝试将其添加到我的 .zshrc 文件中。重启了终端。键入 cd desk ,然后按[tab]。没有什么作用 - 我没有得到 cd Desktop/

以下是完整的.zshrc供参考:

# pure shell theme
autoload -U promptinit; promptinit
prompt pure

# completion definitions
zstyle ':completion:*' matcher-list 'm:{a-zA-Z}={A-Za-z}' 'r:|=*' 'l:|=* r:|=*'
fpath=(/usr/local/share/zsh-completions $fpath)

# syntax highlighting (must be last line)
source /usr/local/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh

我做错了什么?


看看这个链接,它为我解决了问题:https://github.com/ohmyzsh/ohmyzsh/issues/5651 - Humoyun Ahmad
1个回答

27

刚才只需自动加载并运行compinit

这是新的.zshrc

autoload -U compinit promptinit

promptinit
prompt pure

compinit
zstyle ':completion:*' matcher-list 'm:{a-zA-Z}={A-Za-z}' 'r:|=*' 'l:|=* r:|=*'
fpath=(/usr/local/share/zsh-completions $fpath)

source /usr/local/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh

5
你好,我在 macOS Catalina 上从 Bash 切换到 Zsh 后,Tab 键自动补全功能失效了。显然它只能在已初始化 git 的目录中工作,而在其他地方则无法使用。我该怎么办? - SEJU
17
尝试执行命令:rehash。(从zsh指南中了解到,存储命令的方式会产生其他后果。特别地,如果zsh已经知道命令在哪里,它就不会再寻找新命令。例如,在上面的示例中,如果我将新的ls命令放在/usr/local/bin中,zsh仍将继续使用/bin/ls(假设已经找到了)。为了解决这个问题,可以使用命令rehash,该命令会实际清空命令哈希表,从而重新开始寻找命令。) - Jim
1
@Jim在这里给出了正确的答案(至少对我来说是这样) - theraccoonbear

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接