1

如果相关的话,我正在运行 osx 并安装了 oh-my-zsh。

无论如何,如果我输入“andr”之类的内容并点击选项卡来完成它,它会自动完成_xrandr而不是什么都不做(android不在我的路径中)。我不太确定为什么。

知道为什么会这样吗?

4

1 回答 1

2

oh-my-zsh设置完成以在键入的单词的左侧查找完成,如果右侧没有完成。

这发生在~/.oh-my-zsh/lib/completion.zsh

## case-insensitive (all),partial-word and then substring completion
if [ "x$CASE_SENSITIVE" = "xtrue" ]; then
  zstyle ':completion:*' matcher-list 'r:|[._-]=* r:|=*' 'l:|=* r:|=*'
  unset CASE_SENSITIVE
else
  zstyle ':completion:*' matcher-list 'm:{a-zA-Z}={A-Za-z}' 'r:|[._-]=* r:|=*' 'l:|=* r:|=*'
fi

这里的重要部分是'l:|=* r:|=*'. 如果您不喜欢这种行为,您只需将其从zstyle ':completion:*' matcher-list. 最好的方法是创建一个~/.oh-my-zsh/custom带有扩展名的文件.zsh,例如own-completion.zsh

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

这是为了不区分大小写的完成,如果你也不想要这个,也删除'm:{a-zA-Z}={A-Za-z}'.

您可以直接更改它~/.oh-my-zsh/lib/completion.zsh,但是一旦您更新oh-my-zsh ,它可能会被覆盖。

于 2014-06-23T06:37:40.640 回答