9

默认情况下,VIM:e命令会用指定的文件创建一个新的缓冲区,留下当前的缓冲区来处理。这会导致缓冲区数量变得非常大(如果使用某些缓冲区显示插件,例如流行的,这并不方便minibufexplorer)。是否可以修改 VIM 以便:e命令将重新使用当前缓冲区?:enew毕竟,如果我需要两个缓冲区,我总是可以通过命令创建第二个缓冲区。

4

3 回答 3

14

您不能“重用”缓冲区,vim 中的缓冲区是

加载到内存中进行编辑的文件。

您可以删除当前缓冲区,然后打开一个新缓冲区,以便保持缓冲区计数:

:bd!|e /path/file

请注意,使用!,当前缓冲区的更改将被丢弃。

于 2013-07-12T09:49:47.150 回答
10
: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并杀死您所在的缓冲区,而不会弄乱窗户。

于 2013-07-12T10:39:49.390 回答
7

:e thefile | bd#

该解决方案的优点是可以保留窗口。

  1. 在新缓冲区中打开“thefile”
  2. 删除最近的缓冲区(#是备用缓冲区)
于 2019-11-07T01:21:20.690 回答