Estes parecem funcionar:
au FileType netrw hi CursorLine gui=underline
au FileType netrw au BufEnter <buffer> hi CursorLine gui=underline
au FileType netrw au BufLeave <buffer> hi clear CursorLine
Estou tentando escrever um par de autocmds do Vim para ativar / desativar uma opção ao entrar / sair de uma janela do navegador Netrw (via :Explore , :Vexplore , etc.). Eu abri uma dessas janelas e executei :echo bufname('%') , que mostrou NetrwTreeListing 1 como o nome do buffer do explorador. Então eu tentei escrever meus autocommands assim,
autocmd BufEnter NetrwTreeListing* highlight CursorLine gui=underline
autocmd BufLeave NetrwTreeListing* highlight clear CursorLine
mas eles não são acionados. Tentei substituir NetrwTreeListing* por Netrw* e BufEnter por WinEnter , mas não consigo fazê-lo funcionar. O que estou perdendo aqui?
Editar : Talvez isso esteja relacionado. Executando :echo bufname('%') retornando NetrwTreeListing 1 enquanto Netrw estiver definido para navegar em uma "árvore" ( let g:netrw_liststyle=3 ). Caso contrário, retorna o caminho para o diretório atual. Ainda assim, estou tentando acionar meu autocmd com o conjunto de opções "tree", então parece que deve funcionar.
Final : Obrigado garyjohn pela excelente resposta. Ele combina bem com outro conjunto de autocommands que encontrei:
autocmd WinLeave * setlocal nocursorline
autocmd WinEnter,BufRead * setlocal cursorline
Tags vim