你如何搜索vim的命令历史记录?

Léo*_* 준영 66 vim search

我想在Vim中进行以下搜索

(reverse-i-search)`': 
Run Code Online (Sandbox Code Playgroud)

输入上一个命令的单词,即可获得完整命令.

我知道Vim中的时间历史工具

q:
Run Code Online (Sandbox Code Playgroud)

但是,它不像反向搜索那样有用.

你怎么能在Vim和终端中进行类似的反向搜索?

sum*_*mek 85

键入q:正常模式以打开命令窗口.您可以使用常规vim命令在此搜索/编辑.您以普通模式开始.按Enter执行命令.

这种方法使您可以搜索整个命令,而不仅仅是行的开头.

  • 现在我知道为什么我有时会得到命令历史而不是退出缓冲区或vim本身. (17认同)
  • @jchook 有一个 vim-fzf 插件,它具有 :History: 命令,可让您在命令历史记录中进行模糊搜索。但恐怕在执行之前无法修改它们。 (3认同)
  • @sumek:[`fzf.vim`](https://github.com/junegunn/fzf.vim) 的 `:History:` 确实允许您在执行命令之前使用 Ctrl + e 修改命令。 (3认同)

Myk*_*yev 73

输入上一个命令的前几个字母,然后按<向上>箭头(或Ctrl + p).

:set li<up>
:set lines=75
Run Code Online (Sandbox Code Playgroud)

不要忘记检查历史记录选项并将其设置为足够大的值

:set history=1000
Run Code Online (Sandbox Code Playgroud)

  • @Deiwin Ctrl+p (&amp; Ctrl+n for next) 就像在 bash 命令行中调用最后一个命令一样 (3认同)

eli*_*lig 17

在命令模式下按Ctrl+F打开命令历史窗口。然后,你可以使用/,? 和其他搜索命令。按 Enter 执行历史记录中的命令。

有关命令历史记录窗口的更多信息,请参阅:h cmdwin。


Cha*_*ens 11

以下是Vim命令行历史的文档,另请参阅Vim命令行历史记录中有关历史中键绑定的文档部分.看起来你可以说:foo,然后按向上箭头找到以foo开头的最后一个命令.


Jes*_*s H 7

使用 FZF 模糊搜索命令: :History:

来源:https : //github.com/junegunn/fzf.vim


Vic*_*eld 5

我也在寻找这个(最后在想知道为什么它不会内置一段时间之后)并决定我无法抗拒鞭打一个实现,所以在这里你去:https://github.com/goldfeld/ ctrlr.vim

它应该像shell一样工作 - 还有一些基本的东西丢失了(比如再次按下^ R跳到下一个匹配),但我使用的只是在第一个版本中,我计划添加其余的随着时间的推移,未来几周.