4
我有以下四種類型的我.vimrc
高亮(每一個顯示不同的顏色):修改VIM突出重點
- incsearch(亮點 - 爲 - 您 - 搜索匹配)
- 匹配(當前詞,一拉Visual Studio編輯器)
- 2match(在行尾)
- hlsearch(經常
/
搜索匹配)
突出顯示的優先級似乎與我上面列出的完全一樣。例如。增量搜索着色將覆蓋任何其他匹配顏色,如果出現在相同的字符。
我想讓hlsearch
第二優先,以便它覆蓋match
和2match
顏色(如果出現在同一字符中)。
有什麼辦法可以做到這一點?
供參考,這是相關行我.vimrc
文件:
[...]
set hlsearch
set incsearch
[...]
function Matches()
highlight curword ctermbg=darkgrey cterm=bold gui=bold guibg=darkgrey
silent! exe printf('match curword /\V\<%s\>/', escape(expand('<cword>'), '/\'))
highlight eolspace ctermbg=red guibg=red
2match eolspace /\s\+$/
endfunction
au CursorMoved * exe 'call Matches()'
[...]
這正好解決的優先事項,但引入了一個問題:matchadd不會_replace_以前的比賽,而是** **增加了一個新的一。因此,它不再與當前單詞匹配,而是與當前單詞和所有先前單詞匹配。 – STenyaK
你必須在下次調用時記住返回的ID和'matchdelete()'它。無論如何,你可能會爲此定義一個自定義的':Match'命令,所以把這個額外的邏輯放在那裏。 –
謝謝,這工作。請修改您的答案,以反映matchadd在重複使用時不等於匹配,需要'if exists(g:lastmatch)call matchdelete(g:lastmatch)endif;讓g:lastmatch = call matchadd(...)' – STenyaK