Plugins 哦,我的zsh别名不会自动完成

Plugins 哦,我的zsh别名不会自动完成,plugins,autocomplete,alias,zsh,zshrc,Plugins,Autocomplete,Alias,Zsh,Zshrc,我研究这个有点不知所措。。。我只是想问问 我在我的小牛机器上有我的zsh,所有的东西都更新了。我还有Xcode和Brew。全部更新。根据这个页面:我不应该只是输入,说:g[tab]然后得到git吗?或者键入md[tab]并获取mkdir-p?现在,我只是得到一个选项列表,我可以通过标签或箭头通过。。。我以为它会自动完成。我错过了什么 我有一种感觉,它可能与我的$PATH有关,但这也是我感到困惑的地方。。。它应该指向哪里 我非常感激和启迪 # Path to your oh-my-zsh conf

我研究这个有点不知所措。。。我只是想问问

我在我的小牛机器上有我的zsh,所有的东西都更新了。我还有Xcode和Brew。全部更新。根据这个页面:我不应该只是输入,说:g[tab]然后得到git吗?或者键入md[tab]并获取mkdir-p?现在,我只是得到一个选项列表,我可以通过标签或箭头通过。。。我以为它会自动完成。我错过了什么

我有一种感觉,它可能与我的$PATH有关,但这也是我感到困惑的地方。。。它应该指向哪里

我非常感激和启迪

# Path to your oh-my-zsh configuration.
#ZSH=$HOME/.oh-my-zsh
 export ZSH=$HOME/.oh-my-zsh

# Set name of the theme to load.
# Look in ~/.oh-my-zsh/themes/
# Optionally, if you set this to "random", it'll load a random theme each
# time that oh-my-zsh is loaded.
#ZSH_THEME="af-magic"
 ZSH_THEME="agnoster"

# Set to this to use case-sensitive completion
# CASE_SENSITIVE="true"

# Comment this out to disable weekly auto-update checks
# DISABLE_AUTO_UPDATE="true"

# Uncomment following line if you want to disable colors in ls
# DISABLE_LS_COLORS="true"

# Uncomment following line if you want to disable autosetting terminal title.
# DISABLE_AUTO_TITLE="true"

# Uncomment following line if you want red dots to be displayed while waiting for completion
 COMPLETION_WAITING_DOTS="true"

# Which plugins would you like to load? (plugins can be found in ~/.oh-my-zsh/plugins/*)
# Example format: plugins=(rails git textmate ruby lighthouse)
 plugins=(git textmate sublime zsh-syntax-highlighting)

 source $ZSH/oh-my-zsh.sh

#export PATH=/usr/local/bin:/usr/local/sbin:/usr/local/git/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin:/usr/X11/$
#export PATH=$HOME/bin:/usr/local/bin:$PATH
 export PATH=/usr/local/bin:$PATH

[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm"

 zstyle ':completion:*' list-prompt   ''
 zstyle ':completion:*' select-prompt ''

 autoload -Uz compinit
 compinit

别名本质上只是命令的短名称。在执行命令之前,zsh在内部用别名的值替换别名。但默认情况下,使用“完成”选项卡时不会展开别名,它们的处理方式与任何其他命令一样

例如:

alias ll='ls -l'
alias la='ls -al'
如果您现在键入lTab,zsh将显示以l开头的每个命令,包括别名ll和la。如果键入llTab,它可能只会在ll之后添加一个空格,假设没有其他以ll开头的命令

当你运行ll-somedir时,它会做与ls-l-somedir完全相同的事情。您甚至可以添加ls的其他选项:ll-tsomedir运行ls-l-tsomedir

也就是说,如果您想在键入Tab时展开别名,zsh可以这样做

有两种方法:

您可以调用_expand_alias小部件。在emacs模式下,bindkey-e绑定到^Xa按Control+X然后A

您可以将_expand_alias添加到补全符样式中。看起来oh my zsh并没有改变这个样式的默认值,所以添加

zstyle':完成:“'完成符_扩展_别名_完成_忽略”

到您的~/.zshrc应该可以工作

要保存,您可以使用zstyle-L:completion:'completter打印当前设置,扩展别名必须在完成之前

如果您现在键入llTab,zsh将立即用ls-l替换它


注意:在这两种情况下,光标必须位于别名中或别名之后,才能进行替换。这也意味着,如果自动完成,您必须键入整个别名或退格。成功完成后,补全器会添加空格。别名实际上只是命令的短名称。在执行命令之前,zsh在内部用别名的值替换别名。但默认情况下,使用“完成”选项卡时不会展开别名,它们的处理方式与任何其他命令一样

例如:

alias ll='ls -l'
alias la='ls -al'
如果您现在键入lTab,zsh将显示以l开头的每个命令,包括别名ll和la。如果键入llTab,它可能只会在ll之后添加一个空格,假设没有其他以ll开头的命令

当你运行ll-somedir时,它会做与ls-l-somedir完全相同的事情。您甚至可以添加ls的其他选项:ll-tsomedir运行ls-l-tsomedir

也就是说,如果您想在键入Tab时展开别名,zsh可以这样做

有两种方法:

您可以调用_expand_alias小部件。在emacs模式下,bindkey-e绑定到^Xa按Control+X然后A

您可以将_expand_alias添加到补全符样式中。看起来oh my zsh并没有改变这个样式的默认值,所以添加

zstyle':完成:“'完成符_扩展_别名_完成_忽略”

到您的~/.zshrc应该可以工作

要保存,您可以使用zstyle-L:completion:'completter打印当前设置,扩展别名必须在完成之前

如果您现在键入llTab,zsh将立即用ls-l替换它

注意:在这两种情况下,光标必须位于别名中或别名之后,才能进行替换。这也意味着如果自动完成,您必须键入整个别名或退格。\u completer在成功完成后添加空格