2009-04-12 39 views
48

我想有以下搜索Vim中太你如何通過vim的命令歷史搜索?

(reverse-i-search)`': 

輸入一個命令的一個字,你會得到完整的命令。

我知道Vim的

q: 

的編年史工具。然而,它並不像反向搜索有用。

如何在終端中對Vim進行類似的反向搜索?

+0

@Masi:爲什麼它沒有那麼有用?您仍然可以搜索歷史記錄,使其更加強大。 – sumek 2011-11-10 12:00:02

+0

反向搜索模仿的實現實際上非常簡單,請查看下面的答案。 – 2013-06-10 03:34:35

回答

62

輸入上一個命令的前幾個字母,然後按<向上>箭頭(或Ctrl + p)。

:set li<up> 
:set lines=75 

不要忘記檢查的歷史選擇,它在正常模式下設置足夠大的值

:set history=1000 
+0

如果您在Mac上有Visor,請嘗試:set lines = 48,而不是。出於某種原因,窗口會擴大75線。 – 2009-04-12 15:51:45

11

以下是Vim's commandline history的文檔,另請參閱Vim's commandline history上的文檔的這一部分,該部分涵蓋了歷史中的鍵綁定。看起來你可以說:foo,然後點擊向上箭頭找到最後一個以foo開頭的命令。

58

q:類型打開命令窗口。您可以使用普通的vim命令在這裏搜索/編輯。您以普通模式啓動。按Enter執行命令。

這種方法可以讓您搜索整個命令而不僅僅是行首。

5

我一直在尋找這也和決定,我忍不住掀起的實現,所以這裏(終於知道爲什麼它沒有內置在一段時間之後)你去:https://github.com/goldfeld/ctrlr.vim

它應該像shell一樣工作 - 還有一些基本的東西丟失了(例如再次按下^ R跳到下一個匹配),但是我使用的所有內容都在第一個版本中,並且我打算將其餘部分添加到隨着時間的到來,我將在未來數星期內。