2014-05-16 71 views
5

我希望能夠在光標下突出顯示該單詞而不會轉到下一個結果。Vim使用*突出顯示一個字,而不移動光標

,我發現該解決方案採用一個標記:

noremap * mP*N`P 

有沒有更好的解決辦法?

我注意到vim在執行命令後並不能很好地保持它的光標位置。例如,當我切換緩衝區時,光標會返回到行的開頭。

我可能會對此有一個全局設置感興趣。

+0

這個維基頁面有一個關於此的部分:http://vim.wikia.com/wiki/Highlight_all_search_pattern_matches –

回答

9

不幸的是沒有全球性的設置。

一種常用解決方案「高光亮沒有移動」的問題是:

nnoremap * *`` 

一到「保持光標位置切換緩衝器時」的問題的解決方案是:

augroup CursorPosition 
    autocmd! 
    autocmd BufLeave * let b:winview = winsaveview() 
    autocmd BufEnter * if(exists('b:winview')) | call winrestview(b:winview) | endif 
augroup END 
4

作爲詳細here ,您可以按如下方式定義地圖:

:nnoremap <F8> :let @/='\<<C-R>=expand("<cword>")<CR>\>'<CR>:set hls<CR>

2

我的SearchHighlighting plugin更改*命令,以便它不跳轉到下一個匹配項;您仍然可以通過提供[count]來跳轉。它還將該命令擴展到可視模式(另一個不在Vim中的頻繁請求的功能)等等。

+0

你的插件沒有bundle/vundle github存儲庫嗎? – nowox

+0

https://github.com/vim-scripts/SearchHighlighting –