2008-12-12 83 views
92

我在編寫C++時使用vim和vim插件進行visual studio。通常,我發現自己想在一個函數內搜索一個字符串,例如每次調用object->public_member.memberfunc()在vim中搜索選擇

我知道VIM提供了一個便捷的方式來搜索一個詞,按*#,而且還可以搜索使用無處不在的斜線/命令輸入字符串。當試圖搜索像上面那樣的較長字符串的所有實例時,在/之後需要一段時間才能重新輸入。

有沒有辦法搜索選擇?例如,用v突出顯示,然後複製y,在/之後有沒有辦法粘貼?有更簡單的捷徑嗎?

+0

的可能的複製[如何搜索選定文本?](http://stackoverflow.com/questions/8587136/how-do-i-search-for-the-selected-text) – acm 2016-09-13 17:41:28

回答

141

檢查這個Vim的提示:Search for visually selected text

或者你可以簡單地抽出選定的文本與Ÿ和去搜索模式/,那麼你就可以粘貼與按Ctrl +最後抽出的文本,R 0

+1

非常酷。 CMS =快速+詳細。 – Marcin 2008-12-12 15:54:03

+3

@CMS。謝謝。偉大的提示!使用:reg查看寄存器中的內容,然後使用cntl-R N獲取寄存器N中的內容非常好! – 2008-12-15 20:22:10

+0

@Rob&@Marcin,不客氣,開心! – CMS 2008-12-15 20:55:59

35

使用q/,而不是僅僅/。 (同q)。現在你可以通過你的命令和搜索歷史進行VIM編輯! (有時嘗試Ctrl-N和Ctrl-P)。

+1

+1有趣的提示!沒有真正相關,但仍然非常有用。 – Marcin 2011-08-15 20:54:27

66

建立在arcanex的答案上,這裏是另一種做你想做的事情的方式。

  1. 猛拉你要搜索
  2. q/p
  3. 文本輸入

說明

q/與香草搜索/類似,但您處於命令模式,因此p實際上是「粘貼」而不是鍵入字符p。因此,上面的內容會抽出你正在搜索的字符,然後將它們粘貼到搜索中。

(見:help q/

2

實際上,你可以選擇在視覺文本,然後按*和#尋找下一個出現的...這將工作相同,唯一需要注意的是:

當搜索時(搜索「hello world」也會在一行的末尾找到「hello」,並在下一行的開頭有「world」),選擇中的空白符合任何空格。

http://vim.wikia.com/wiki/Search_for_visually_selected_text

9

我剛剛學會(通過優秀圖書實用的Vim)有該插件。 您可以找到plugin on GitHub

該插件可讓您搜索*#的視覺選擇。

-1

突出顯示v和使用//搜索的文本。

可以使用Ÿ以及猛拉選擇文本,然後粘貼使用p