Vim命令模式完成字


12

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

one
two
three
once

我进入命令行模式

:myruncommand o|

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



引用脚本描述:“在':'模式下,只有在'/'之后才可以完成。” 并不是我真正需要的。
Nickolay Kolev 2011年

Answers:



5

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

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

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


好答案。我绝对想更好地使用命令缓冲区。
jamesc

@jamesc:很高兴它对您有所帮助。我不知道Ctrl+F,所以您的回答也对我有所帮助。
Michael Scheper 2015年

3

尽管确实不能使用'tab'本身完成此操作,但存在以下可能性:

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

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

  • 使用A移至行尾并进入插入模式。
  • 使用Ctrl-N/ Ctrl-P打开关键字补全,然后选择所需的选项-在此示例中,两者都应该使用,因为它们位于打开的缓冲区中one,因此once应该可用。

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

这在Vim 7.4中对我有效


我应该已经猜到有一种简单的方法可以在已经输入命令或搜索字符串的情况下转到命令/搜索缓冲区!谢谢!我已经根据您的答案添加了一个基于您的答案。但是,毫无疑问,Ctrl+F在许多情况下它更方便。superuser.com/a/1016058/219388
Michael Scheper 2015年

1

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

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

有关更多详细信息,请参见http://vim.wikia.com/wiki/Using_command-line_history


1
在命令行模式下,如果您键入Ctrl-f命令行历史记录,则打开该窗口,如果您想关闭该窗口,则可以键入Ctrl-w q
SergioAraujo
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.