【问题标题】:zsh: how to make tab completion need no space to next word after cursor?zsh:如何使制表符完成不需要光标后的下一个单词空格?
【发布时间】:2016-10-12 20:47:19
【问题描述】:

zshbash 制表符补全之间存在令人讨厌的区别:

假设你写了一些命令并想在行首添加一些东西:

$ compute --some --stuff

然后你跳到行首开始写sudo(不好的例子——只是为了演示)

$ sudcompute --some --stuff
    ^ <---cursor

bash 会让你完成sudsudo,而zsh 会尝试完成sudcompute

所以在这种情况下,您必须写一个空格,跳回一个字符并尝试使用制表符完成。

如果你仍然习惯于bash,你会尝试在sud 之后使用制表符完成,然后将你开始编写的命令渲染成完全没用的东西。

简而言之:有没有一个选项可以让zsh 完成光标左侧的短语,而不管它是否以空格结尾?

【问题讨论】:

  • 我通常会在运行命令后意识到我需要 sudo,因此 sudo !! 可以解决问题
  • [up] 因为它没有回答我的问题,但在这种情况下确实很有帮助

标签: bash autocomplete zsh tab-completion


【解决方案1】:

刚刚查看了我的.zshrc 文件,我认为这就是您想要的:

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

其中^i&lt;Ctrl-I&gt;,通常是制表符。

【讨论】:

  • 这至少可以满足我的要求,谢谢!我会深入研究expand-or-completeexpand-or-complete-prefix 的区别,但我想你已经找到了答案。
  • @frans AFAIK 唯一的区别是expand-or-complete 将使用光标下的单词,而expand-or-complete-prefix 将使用光标左侧的单词。
猜你喜欢
  • 2015-04-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-12-23
  • 2015-12-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多