Vim 命令模式完成单词

Vim 命令模式完成单词

有没有办法让 Vim 在命令模式下完成当前文件中的单词?假设我有这个文件:

one
two
three
once

然后我进入命令行模式

:myruncommand o|

其中|表示光标位置。如何使 Vim 完成oneonce按 Tab 键时完成?

答案1

这在本机上是不可能的,但花了大约一分钟才找到这个脚本这个vim.org

答案2

jamesc 的回答通常是最方便的,但是当您提前知道要使用自动完成命令或搜索字符串,或仅在缓冲区中可用的其他功能时,这里是另一种获取适当缓冲区的方法:

  • 键入q :以打开命令缓冲区
  • 键入a以开始输入新命令: myruncommand o
  • 使用Ctrl+ N/ Ctrl+P进行关键字补全,就像 jamesc 的答案一样

基本上,与+ 的q :作用相同:让您像在缓冲区中输入文本一样输入命令。同样,和+都允许您在缓冲区中输入搜索字符串。: CtrlFq // CtrlF

答案3

尽管这不能通过 'tab' 键原生完成,但还是有可能的:

  • 在命令行模式中输入所需的命令。对于上例,这是:

    :myruncommand o
    
  • 现在按下Ctrl-F进入命令窗口。

  • 使用A移动到行尾并进入插入模式。
  • 使用Ctrl-N/Ctrl-P打开关键字完成并选择您想要的选项 - 在此示例中one和都once应该可用,因为它们位于打开的缓冲区中。

我添加了这个答案,因为我搜索“命令模式下的 vim 完整单词”将我带到了这里,它似乎是一个可行的解决方案,即使它不使用“tab”键。

这在 Vim 7.4 中对我有用

答案4

如果您进入命令历史记录模式,则可以完成。更改或重复以前使用的命令非常方便。

问:在正常模式下进入命令历史记录窗格。

http://vim.wikia.com/wiki/Using_command-line_history更多细节。

相关内容