Как скрыть строку курсора, когда фокус находится в другом окне в vim

В моем файле vimrc у меня есть этот параметр set cursorline . Я хочу скрыть эту строку, если это окно не находится в фокусе. Есть ли возможность в vim сделать это? См. Это screenshot

4
nl ja de

2 ответы

По сути, это всего лишь следующие autocmds:

augroup CursorLine
    au!
    au VimEnter * setlocal cursorline
    au WinEnter * setlocal cursorline
    au BufWinEnter * setlocal cursorline
    au WinLeave * setlocal nocursorline
augroup END

Но иногда вам может понадобиться определить исключения (то есть постоянное включение или выключение) для определенных окон. Именно здесь может быть полезен мой плагин CursorLineCurrentWindow .

10
добавлено
Вам все равно нужно : установить курсорную строку в .vimrc до загрузки плагина.
добавлено автор Ingo Karkat, источник
Я просто поместил ваш плагин в папку с папками. Но он не загружается. Как мне его загрузить? Я использую Pathogen для загрузки всех плагинов
добавлено автор deven98602, источник

Похоже, вы хотите, чтобы указатель мыши включался при вводе буфера vim и выключен при его выходе. Эти команды в файле vimrc достигнут этого:

autocmd BufEnter * set cursorline
autocmd BufLeave * set nocursorline
1
добавлено
Автозамены неправильны; см. мой ответ за что-то, что работает.
добавлено автор Ingo Karkat, источник
Согласен. Ответ Инго лучше.
добавлено автор FuzzyWuzzy, источник
это именно то, что я хотел, спасибо! Но когда я открываю новый буфер, я все еще вижу строку курсора в предыдущем буфере.
добавлено автор deven98602, источник