2014-06-22 21 views
1

我运行osx并安装了oh-my-zsh,如果这是相关的。无论如何,如果我输入“andr”之类的东西并点击tab来完成它,它会自动完成到_xrandr而不是什么都不做(android不在我的路径中)。我不确定为什么。“安德尔”选项卡完成到“_xrandr”而不是android或什么都没有

任何想法为什么可能是这种情况?

+1

执行'android'命令是否在你的路径? – Guillaume

+0

这不是,但应该是相关的?难道它不应该做任何事情吗? (刚刚解决了问题标题以反映这一点) – randomafk

+0

因此,如果它不在你的路径中,'zsh'无法完成它!你可以用'export PATH = $ PATH:编辑你的'.zshrc'来添加命令' – Guillaume

回答

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可能会被覆盖。

相关问题