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

时间:2013-07-12 09:37:00

标签: vim

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

3 个答案:

答案 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#

此解决方案的优点是它将保留窗口。

  1. 在新缓冲区中打开“ thefile”
  2. 删除最近的缓冲区(#是备用缓冲区)