這篇是承自之前提過的問題,今天終於花了一點時間,看了一下 NERDTree 的 source code 找出解法。
在自己的 .vimrc 裡新增這麼一段自訂 function:
function! LeaveNERDTree() if winnr() == g:NERDTree.GetWinNum() wincmd p endif endfunction
大概的邏輯是這樣:
- 如果目前所在視窗的號碼等於 NERDTree 的視窗號碼
- 不管怎樣,跳開就對了,cursor 就是不要在 NERDTree 裡面
然後就可以套用到自己切換 buffer 的快速鍵上:
nnoremap <silent> <F3> :call LeaveNERDTree()<CR>:bprev<CR>
nnoremap <silent> <F4> :call LeaveNERDTree()<CR>:bnext<CR>
短短幾行,解決了長期以來的、常常為了自己操作錯誤而惹得很毛的問題,怨自己當初為什麼沒仔細去看 source code?