如果相关的话,我正在运行 osx 并安装了 oh-my-zsh。
无论如何,如果我输入“andr”之类的内容并点击选项卡来完成它,它会自动完成_xrandr
而不是什么都不做(android
不在我的路径中)。我不太确定为什么。
知道为什么会这样吗?
如果相关的话,我正在运行 osx 并安装了 oh-my-zsh。
无论如何,如果我输入“andr”之类的内容并点击选项卡来完成它,它会自动完成_xrandr
而不是什么都不做(android
不在我的路径中)。我不太确定为什么。
知道为什么会这样吗?
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 ,它可能会被覆盖。