【发布时间】:2018-12-07 19:17:42
【问题描述】:
问题:
- 在 VIM 中,打开 NERDTree
- 选择一个文件并在新缓冲区中打开它(回车)
- 对缓冲区做一些工作并保存
- 使用 :bd 删除缓冲区
现在 NERDTree 占据了整个窗口 - 这本身不是问题,但是...
- 使用 :bnext 转到下一个缓冲区
- 继续工作
- 现在尝试按 Ctrl-N 再次打开 NERDTree
你看,NERDTree 保持“最大化”,你必须调整它的大小。
我尝试解决这个问题:
我的方法就是标题中所说的:删除缓冲区时自动关闭NERDTree,然后在进入另一个缓冲区时重新打开它。
function! g:CloseNERDTree()
if exists("g:NERDTree") && g:NERDTree.IsOpen()
NERDTreeClose
else
echo "already closed"
endif
endfunction
autocmd BufDelete * call CloseNERDTree()
function! g:OpenNERDTree()
if exists("g:NERDTree") && g:NERDTree.IsOpen()
echo "already open"
else
NERDTree
endif
endfunction
autocmd BufEnter * call OpenNERDTree()
这会导致 VIM 无法使用,而我的 VimScript 知识不足以知道发生了什么。
【问题讨论】:
-
不是答案,但总是值得一读:vimcasts.org/blog/2013/01/…