“andr”选项卡完成“_xrandr”而不是android或什么都没有

时间:2014-06-22 16:19:39

标签: android macos zsh tab-completion oh-my-zsh

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

无论如何,如果我输入类似" andr"并点击标签来完成它,它自动填充到_xrandr而不是什么都不做(android不在我的路径中)。我不确定为什么。

知道为什么会这样吗?

1 个答案:

答案 0 :(得分: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 后可能会被覆盖。