Насколько я знаю, нет встроенного способа делать то, что вы хотите.
Если бы я попытался реализовать это сам ... Ну, один из способов сделать это - переопределить *
, n
и p
и объединить его с чем-то вроде этой функцией :
noremap n n:call HighlightNearCursor()<CR>
noremap p p:call HighlightNearCursor()<CR>
noremap * *:call HighlightNearCursor()<CR>
function HighlightNearCursor()
if !exists("s:highlightcursor")
match Todo /\k*\%#\k*/
let s:highlightcursor=1
else
match None
unlet s:highlightcursor
endif
endfunction
Я не проверял это, так что это не полное решение, но я думаю, что это по крайней мере жизнеспособный подход.
РЕДАКТИРОВАТЬ: Возможно, вам придется установить некоторые пользовательские цвета подсветки. Эта страница vimwiki дает некоторую информацию об этом, хотя я помню, что видел более краткий пример где-то .
ВНОВЬ РЕДАКТИРОВАТЬ: Возможно, более чистое решение - использовать Mark.vim в сочетании с первой техникой. Тогда все это будет сводиться к чему-то вроде:
noremap n \nn\m
noremap p \np\m
noremap * \n*\m