VIM:如何在当前缓冲区中打开新文件?

VIM:如何在当前缓冲区中打开新文件?,vim,Vim,默认情况下,VIM:e命令将使用指定的文件创建一个新的缓冲区,将当前的缓冲区留待处理。这会导致缓冲区数量增长非常大(如果使用了一些缓冲区显示插件,例如流行的minibufexplorer,这就不方便了)。是否可以修改VIM,使:e命令重新使用当前缓冲区?如果我需要两个缓冲区,我始终可以通过:enew命令创建第二个缓冲区。您不能“重用”缓冲区,vim中的缓冲区是 装入内存进行编辑的文件 您可以删除当前缓冲区,然后打开一个新的缓冲区,以保持缓冲区计数: :bd!|e /path/file 请注意,

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

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

装入内存进行编辑的文件

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

:bd!|e /path/file
请注意,使用
,当前缓冲区上的更改将被丢弃

: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>)

加载你的
.vimrc
并清除你所在的缓冲区,而不影响windows。

:e thefile | bd 35;

此解决方案的优点是可以保留windows

  • 在新缓冲区中打开“文件”
  • 删除最近的缓冲区(
    #
    是备用缓冲区)

  • 谢谢!在VIM中有关于这个“|”符号的文档吗?我不知道我可以像这样连动命令。很好地提到
    :bd|e文件
    杀死分裂!我在找能保持裂口的东西layout@jazzyfresh,尝试此解决方案,它将保留拆分窗口:如果没有最新的缓冲区,它将抛出一个错误。我打开了两个窗口<代码>:e filepath | bd 35;
    破坏了我的另一个窗口并打开了该文件,因此无法保留窗口。从命令中删除
    d#
    将保留窗口。
    :BDE ~/.vimrc
    
    :BDE! ~/.vimrc