默认情况下,VIM:e
命令会用指定的文件创建一个新的缓冲区,留下当前的缓冲区来处理。这会导致缓冲区数量变得非常大(如果使用某些缓冲区显示插件,例如流行的,这并不方便minibufexplorer
)。是否可以修改 VIM 以便:e
命令将重新使用当前缓冲区?:enew
毕竟,如果我需要两个缓冲区,我总是可以通过命令创建第二个缓冲区。
问问题
13284 次
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#
该解决方案的优点是可以保留窗口。
- 在新缓冲区中打开“thefile”
- 删除最近的缓冲区(
#
是备用缓冲区)
于 2019-11-07T01:21:20.690 回答