2013-02-13 70 views
7

我知道有可能阻止Vim在任何搜索中突出顯示,但是有沒有辦法讓它在常規搜索時突出顯示,但不是替代?在Vim中突出顯示搜索但不替換?

我經常會突出顯示文本塊,然後像做:

:s/^/#/ 

註釋掉整個街區。但後來我在屏幕的左側有一個醜陋的黃色條,我必須每次清除它時都要輸入:noh

我想突出顯示保持常規/搜索。這可能嗎?

+0

不知道這樣的事情是否會起作用,但也許可以將'搜索'突出顯示組更改爲普通文本,然後將'/'搜索鍵重新映射爲::匹配NewSearchGroup/searchterm/。我也很想聽到更好的方法。 – Tim 2013-02-13 21:31:27

+1

這並不回答你的問題,但你應該真的使用[tComment](https://github.com/tomtom/tcomment_vim)(或類似的評論插件)來評論文本塊。您可以使用動作進行評論,並可以輕鬆評論任何內容,包括XML。 – 2013-02-13 22:54:24

+0

也許你可以使用[這個答案](http://stackoverflow.com/a/13636203/778118)得到指出正確的方向... – jahroy 2013-02-14 07:16:45

回答

5

這並不完全,但回答你的問題,我有它幫助了同樣的問題:我補充這個命令搜索或後輕鬆停用高亮搜索和替換

nnoremap <esc> :noh<return><esc> 

(從Vim clear last search highlighting

+0

你打敗了我吧...我要建議映射「ENTER」鍵。 – jahroy 2013-02-14 07:02:43

1

我的解決辦法:把這個在你的vimrc文件

set nohlsearch 

noremap * :set hlsearch<CR>:nohlsearch<CR>* 
noremap/:set hlsearch<CR>:nohlsearch<CR>/ 
noremap ? :set hlsearch<CR>:nohlsearch<CR>? 

nnoremap <F4> :set invhlsearch<CR> 
inoremap <F4> <ESC>:set invhlsearch<CR>gi 
nnoremap <CR> :set nohlsearch<CR> 

作用:

  1. 搜索始終啓用高亮。
  2. 使用輸入關閉高光直到下一次搜索,但不是下一個替代。按輸入再次不會讓他們回來,雖然。
  3. 使用F4關閉高光直到下一次搜索,但不下一次替代。按F4將再次切換上次搜索模式的亮點---搜索或替換---如果有的話。

上重點介紹了一些注意事項是永遠不能真正很好地解釋:
'hlsearch'選項,所有未來的搜索/替代將打開"highlight visibility"。當前"highlight visibility"不是您可以直接查詢或獨立設置的選項,但您可以使用命令:nohlsearch(與:set nohlsearch不同,因爲下一次搜索將再次啓用可見性)可以獨立關閉高亮可見性。

另外,每當你運行命令:set hlsearch時,都會有兩個效果:它設置選項AND,如果你輸入了:nohlsearch,它會使vim忘記。換句話說,更改'hlsearch'(開或關)將強制當前的"highlight visibility"在邏輯上匹配。