如何在进入 Netrw 窗口时触发 Vim 自动命令?

如何在进入 Netrw 窗口时触发 Vim 自动命令?

我正在尝试编写一对 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 1let 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

相关内容