zsh:如何设置自动完成功能,以便在光标位于文本之间时插入完成?

时间:2012-11-12 10:19:21

标签: bash autocomplete zsh bash-completion

在我的bash shell中,当我的光标位于文本之间时,我点击 Tab ,它会自动填充文件名,当我点击 Enter 时,它会在光标,以及光标后的所有内容,例如

  $ cp foo.ba¦r.baz.py 
             ^  <== cursor position

点击 Tab 键,现在我看到了:

  $ cp foo.bar.baz.py¦r.baz.py
                     ^ <== cursor position

我喜欢这种行为,尤其是在执行mvcp并希望修改原始文件名时。如何让 zsh 做同样的事情?

2 个答案:

答案 0 :(得分:3)

使用扩展或完整前缀,将其添加到 .zshrc 文件中:

bindkey '^i' expand-or-complete-prefix

有关 zsh 完成的详细信息,请阅读this page

答案 1 :(得分:1)

或者,您可以在zshrc中的_prefix命令末尾添加zstyle ':completion:*' completer控制功能,所以它看起来像这样:

zstyle ':completion:*' completer _force_rehash _complete _list _match _prefix

您还需要启用completeinword才能实现此目的:

setopt completeinword

通过这种方式,您不会像绑定expand-or-complete-prefix一样强制使用扩展。