Я пытаюсь написать пару Vim autocmd для включения / выключения опции при входе / выходе из окна браузера Netrw (через :Explore :Vexplore и т.д.). Я открыл одно такое окно и запустил :echo bufname('%') , который показал NetrwTreeListing 1 в качестве имени буфера проводника. Поэтому я попытался написать свои автокоманды так,
autocmd BufEnter NetrwTreeListing* highlight CursorLine gui=underline
autocmd BufLeave NetrwTreeListing* highlight clear CursorLine
но они не срабатывают. Я пытался заменить NetrwTreeListing* на Netrw* , а BufEnter на WinEnter но не могу заставить его работать. Что мне здесь не хватает?
Редактировать: Может быть, это связано. Выполнение :echo bufname('%') возвращает NetrwTreeListing 1 если Netrw настроен на просмотр в "дереве" (let g:netrw_liststyle=3). В противном случае он возвращает путь к текущему каталогу. Тем не менее, я пытаюсь запустить мой autocmd с установленным параметром "tree", поэтому похоже, что он должен работать.
Финал: Спасибо Гарион за отличный ответ. Он хорошо сочетается с другим набором автокоманд, с которыми я столкнулся:
autocmd WinLeave * setlocal nocursorline
autocmd WinEnter,BufRead * setlocal cursorline
