Я установил линию курсора в моем vimrc. Есть ли способ заставить vim выделять только текущую строку в активном буфере вместо всех буферов?
Как я могу сделать vim подсветкой текущей строки только для активного буфера?
Ответ 1
Вы можете попробовать:
au BufEnter * setlocal cursorline
au BufLeave * setlocal nocursorline
Ответ 2
Проблема с крючками BufEnter
/BufLeave
, используемыми в ответе Zsolt, заключается в том, что они не срабатывают при переходе в соседнее окно, которое отображает тот же буфер. Я успешно использовал следующее:
augroup CursorLine
au!
au VimEnter,WinEnter,BufWinEnter * setlocal cursorline
au WinLeave * setlocal nocursorline
augroup END
Ответ 3
В ответ Zsolt я бы добавил:
au WinLeave * setLocal nocursorline
Это улучшает поведение при перемещении между двумя окнами в одном буфере.
Ответ 4
Слабость всех коротких решений :autocmd
здесь заключается в том, что вы не можете делать исключения, такие как отключение курсорной строки для определенного окна или постоянство для (другого) окна. Любое изменение 'cursorline'
будет перезаписано следующим переходом в другое окно.
My CursorLineCurrentWindow плагин обрабатывает эти исключения с помощью более сложной логики.