2012-05-08 79 views
2

我有一個文件(LaTeX),其中包含我希望註釋的行。
在視覺選擇相關塊之後使用的正則表達式是:s/^/%/g,它工作正常。但是,vim會突出顯示替換中使用的正則表達式第一部分的每個匹配事件(突出顯示每行開頭的第一個字符)。在Vim中搜索和替換後取消選擇匹配的字符串

如果我做了另一個搜索或其他搜索和替換,選擇會發生變化,但我不能在不進行「無用」搜索的情況下關閉它。

如果我搜索空格(因爲在文本文件中突出顯示每個''在視覺上令人討厭),這是特別惱人的。

如何在搜索和替換完成後取消匹配字符串?

+1

您也可以'V:標準I%'評論和'V:標準^ x '取消註釋而不突出顯示任何內容。此外,命令末尾的'g'標誌用於對同一行中的所有實例執行替換。既然你只是在一次平行線上進行替換,那就沒用了。 – romainl

回答

6

:nohlsearch將停止突出,但把它作爲活動的搜索模式。 (它將開始n等被聚焦)

:let @/=""將清除搜索模式寄存器(使n等將無法正常工作)。

我在Vim看到的一件常見事情是map <Leader><Space> :noh<CR>;這會導致(假設默認領導者,反斜槓)\空間將停止突出顯示當前匹配。

+2

值得注意的是,如果您決定使用鍵映射,則可能需要將映射設置爲切換高亮顯示(使用':set hlsearch!')而不是簡單地禁用它。 –

+1

@TimPote:映射通常使用':noh'完成,而不是''nohls''。因此,只要你搜索新的東西,它會再次開始高亮顯示。 –

4

:nohlsearch將刪除當前搜索中的突出顯示。突出顯示將返回到您的下一個搜索。

:set nohlsearch將禁用突出顯示您當前的vim會話。

如果你想完全禁用突出,加上:set nohlsearch.vimrc

+2

強調':nohlsearch'和':set nohlsearch'之間的區別可能是值得的......很容易不太注意。 –

+0

@ChrisMorgan好點。查看我的更改。 –

2

只要搜索一個字符串,它是不是在頁面上:

/poop 
+1

這*確實*以最簡單的方式回答問題;但實際上,當你在每次編輯會話中談論數十次搜索時,@ ChrisMorgan的答案要簡單得多。 – jpaugh

+0

是的,這個**確實回答了**問題。我多年來一直在使用這個解決方案,因爲它很容易記住並且很有效。 –

-1

商品添加到您的vimrc,一旦完成 - 按在我的情況<,> + Enter停止突出

 map <silent> <leader><cr> :noh<cr>