有没有办法让 Vim 在命令模式下完成当前文件中的单词?假设我有这个文件:
one
two
three
once
然后我进入命令行模式
:myruncommand o|
其中|
表示光标位置。如何使 Vim 完成one
或once
按 Tab 键时完成?
答案1
答案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
如果您进入命令历史记录模式,则可以完成。更改或重复以前使用的命令非常方便。
按问:在正常模式下进入命令历史记录窗格。