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

我也希望在 Vim 中进行以下搜索

(reverse-i-search)`':

输入前一个命令的一个单词,就会得到完整的命令。

我知道 Vim 中的按时间顺序排列的历史工具

q:

然而,它并不像模糊反向搜索那样有用。

如何在 Vim 中进行类似于终端中的反向搜索?

58195 次浏览

Here are the docs for Vim's commandline history, also see this part of the docs on Vim's commandline history that covers the key bindings while in the history. It looks like you can say :foo and then hit the up arrow to find the last command that started with foo.

Enter the first letters of your previous command and push <Up> arrow (or Ctrl+p).

:set li<up>
:set lines=75

Don't forget to check history option and set it to big enough value

:set history=1000

Type q: in the normal mode to open commands window. You can search/edit here using regular vim commands. You start in Normal mode. Press Enter to execute a command.

This approach lets you search across whole command not just beginning of line.

I was looking for this as well (finally after wondering why it wasn't built-in for some time) and decided I couldn't resist whipping up an implementation, so here you go: https://github.com/goldfeld/ctrlr.vim

It should work just like the shell's--well there are still a couple basic things missing (like pressing ^R again to skip to next match), but all that I use is in this first release, and I plan to add the rest in the coming weeks as I get time.

Press Ctrl+F in command mode to open the command history window. Then, you can use / , ? , and other search commands. Press Enter to execute a command from the history.

For more about the command history window, see :h cmdwin .

With FZF fuzzy search command: :History:

Source: https://github.com/junegunn/fzf.vim