如何在vim中修复窗口中的缓冲区?

时间:2011-05-20 01:40:06

标签: vim

我可以修复一个缓冲区,以便从vim窗口中删除它的唯一方法就是关闭它吗?

例如,我正在使用NERDtree插件,它在vim窗口中显示文件系统。有时我忘记在使用quickfix命令之前将焦点更改为其他窗口,并且erroneus文件最终替换文件树。 (更不用说NERDtree的窗口默认宽度仅为31)

修改

我想用这个问题来实现的是模拟Eclipse中vim内部的视图和编辑器的概念。在这个术语中,NERDTree(和其他专门用于显示信息的插件)将是一个视图,而其他窗口将是编辑器。

2 个答案:

答案 0 :(得分:1)

这不完全是一个答案,但如果你搞砸了,Ctrl- ^撤消缓冲区内容的变化。

答案 1 :(得分:1)

我编写了一个自动命令来执行此操作。将以下内容添加到 vimrc 将防止 NERDtree 缓冲区被覆盖:

autocmd BufEnter * if bufname("#") =~ "NERD_tree" && bufname("%") !~ "NERD_tree" | b# | endif

自动命令在每次打开新缓冲区时运行——如果它检测到前一个缓冲区是 NERDtree 而当前缓冲区不是 NERDtree,那么它会返回到 NERDtree 缓冲区,本质上“锁定”NERDtree 到位。