我可以修复一个缓冲区,以便从vim窗口中删除它的唯一方法就是关闭它吗?
例如,我正在使用NERDtree插件,它在vim窗口中显示文件系统。有时我忘记在使用quickfix命令之前将焦点更改为其他窗口,并且erroneus文件最终替换文件树。 (更不用说NERDtree的窗口默认宽度仅为31)
修改
我想用这个问题来实现的是模拟Eclipse中vim内部的视图和编辑器的概念。在这个术语中,NERDTree(和其他专门用于显示信息的插件)将是一个视图,而其他窗口将是编辑器。
答案 0 :(得分:1)
这不完全是一个答案,但如果你搞砸了,Ctrl- ^撤消缓冲区内容的变化。
答案 1 :(得分:1)
我编写了一个自动命令来执行此操作。将以下内容添加到 vimrc 将防止 NERDtree 缓冲区被覆盖:
autocmd BufEnter * if bufname("#") =~ "NERD_tree" && bufname("%") !~ "NERD_tree" | b# | endif
自动命令在每次打开新缓冲区时运行——如果它检测到前一个缓冲区是 NERDtree 而当前缓冲区不是 NERDtree,那么它会返回到 NERDtree 缓冲区,本质上“锁定”NERDtree 到位。