我正在尝试编写一对 Vim 自动命令,以便在进入/离开 Netrw 浏览器窗口时(通过:Explore
、:Vexplore
等)打开/关闭某个选项。我打开了一个这样的窗口并运行:echo bufname('%')
,它显示NetrwTreeListing 1
为资源管理器缓冲区的名称。因此,我尝试像这样编写自动命令,
autocmd BufEnter NetrwTreeListing* highlight CursorLine gui=underline
autocmd BufLeave NetrwTreeListing* highlight clear CursorLine
但它们不会触发。我尝试用 替换NetrwTreeListing*
,Netrw*
并BufEnter
用 替换WinEnter
,但无法使其工作。我在这里遗漏了什么?
编辑:也许这有关系。只要将 Netrw 设置为以“树”形式浏览( ),运行:echo bufname('%')
就会返回。否则,它会返回当前目录的路径。不过,我正在尝试使用“树”选项集触发我的自动命令,所以看起来它应该可以工作。NetrwTreeListing 1
let g:netrw_liststyle=3
最终的:感谢 garyjohn 的出色回答。它与我遇到的另一组自动命令配合得很好:
autocmd WinLeave * setlocal nocursorline
autocmd WinEnter,BufRead * setlocal cursorline
答案1
这些似乎有效:
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