2011-02-11 80 views
3

我在網上搜索了一段時間,但我找不到答案。如何在vim中編輯搜索文本?

我想要做的是編輯之前在vim中輸入的搜索文本。

例如,我剛剛搜索「FooClass」。然後,我想搜索「FooMethod」,但不是從頭開始輸入整個單詞,而是退格5次以刪除「Class」,並在「Foo」後鍵入「Method」。

謝謝!

回答

12

/然後向上,然後退格五次。 (可能假定設置爲nocp)。


現在停止,除非你想了解一些花哨的新花樣閱讀...

如果你想聰明,你也可以使用Ctrl-R拉東西到搜索框(例如把光標的單詞時,按/,然後按下並按住Ctrl鍵並按- [R然後W¯¯,它將拉光標下到搜索線的字:類似於按下* ,但可編輯且沒有詞邊界)。

如果你想獲得真的聰明,你可以使用所有Vimscript中的聰明的設置@/是你要搜索,然後按任何ñ

:let @/ = 'Foo' . 'Method' 
n 

可能比你更要知道,雖然...

參見:

:help 'nocp' 
:help c_CTRL-R 
:help c_CTRL-R_CTRL-W 
:help * 
:help quote/ 
:help :[email protected] 
+0

Al - 謝謝,在那裏有一些不錯的小花絮。 。 。 – 2011-02-11 18:31:56

+1

ctrl + r技巧聽起來很酷,但由於某種原因,我得到/ <80> kb^[而不是光標下的詞。任何想法可能會導致什麼? – Marcus 2011-02-13 02:14:41

9

我發現編輯歷史最適合複雜的搜索。您可以使用q/編輯搜索記錄。只需編輯想要使用的行,然後按回車即可執行該行。

還有一個great vimcast關於使用這種技術來改進搜索模式。

:h q/