默认情况下,VIM :e
命令将创建一个包含指定文件的新缓冲区,并保留当前缓冲区。这导致缓冲区计数增长非常大(如果使用某些缓冲区显示插件,这不是很方便,例如流行的minibufexplorer
)。是否可以修改VIM,以便:e
命令重用当前缓冲区?如果我需要两个缓冲区,我总是可以通过:enew
命令创建第二个缓冲区。
答案 0 :(得分:12)
你不能“重用”缓冲区,vim中的缓冲区是
将文件加载到内存中进行编辑。
您可以删除当前缓冲区然后打开一个新缓冲区,以便保持缓冲区计数:
:bd!|e /path/file
请注意,对于!
,将丢弃当前缓冲区的更改。
答案 1 :(得分:8)
:bd!|e file
是最直观的方法,但如果你有分裂,它会杀死你的窗口。所以......
function! ReplaceBuffer(bang, newfile)
let curbuf = bufnr('%')
exec "e " . a:newfile
exec "bd" . a:bang . " " . curbuf
endfunction
command! -nargs=1 -complete=file -bang -bar BDE call ReplaceBuffer('<bang>', <f-args>)
然后你可以做
:BDE ~/.vimrc
或
:BDE! ~/.vimrc
加载你的.vimrc
并杀掉你所在的缓冲区,而不会弄乱窗口。
答案 2 :(得分:1)
:e thefile | bd#
此解决方案的优点是它将保留窗口。
#
是备用缓冲区)