Tôi đang cố gắng để viết một cặp autocmd của Vim để chuyển đổi một tùy chọn bật / tắt khi vào / rời khỏi một cửa sổ trình duyệt Netrw (thông qua :Explore
, :Vexplore
, vv). Tôi mở một cửa sổ như vậy và chạy :echo bufname('%')
, nó hiển thị NetrwTreeListing 1
như tên của bộ đệm explorer. Vì vậy, tôi đã cố gắng viết autocommands của mình như vậy,
autocmd BufEnter NetrwTreeListing* highlight CursorLine gui=underline
autocmd BufLeave NetrwTreeListing* highlight clear CursorLine
nhưng họ không kích hoạt. Tôi đã thử thay thế NetrwTreeListing*
bằng Netrw*
, và BufEnter
với WinEnter
nhưng không thể làm cho nó hoạt động. Tôi đang thiếu gì ở đây?
Chỉnh sửa : Có thể điều này có liên quan. Chạy :echo bufname('%')
trả về NetrwTreeListing 1
miễn là Netrw được thiết lập để duyệt trong một "cây" ( let g:netrw_liststyle=3
). Nếu không, nó trả về đường dẫn đến thư mục hiện tại. Tuy nhiên, tôi đang cố gắng kích hoạt autocmd của mình với tùy chọn "cây", vì vậy có vẻ như nó sẽ hoạt động.
Chung kết : Cảm ơn garyjohn cho câu trả lời tuyệt vời. Nó kết hợp tốt với một bộ autocommands khác mà tôi đã gặp:
autocmd WinLeave * setlocal nocursorline
autocmd WinEnter,BufRead * setlocal cursorline