我使用:e和:w命令来编辑和写入文件。我不确定是否有“close”命令关闭当前文件而不离开Vim?

我知道:q命令可以用来关闭一个文件,但如果它是最后一个文件,Vim也会被关闭;实际上在Mac OS上MacVim退出了。只有Vim窗口是关闭的,我可以使用Control-N再次打开一个空白的Vim窗口。我希望Vim保持空白屏幕的打开状态。


当前回答

对我来说,close-buffers是非常有用的插件:

:删除这个关闭,你可以重新映射。

其他回答

在.vimrc文件中插入以下内容,按下F4,将关闭当前文件。

:map <F4> :bd<CR>

如果你的Vim窗口中有多个分割窗口,那么:bd关闭当前文件的分割窗口,所以我喜欢使用一些更高级的东西:

map fc <Esc>:call CleanClose(1)

map fq <Esc>:call CleanClose(0)


function! CleanClose(tosave)
if (a:tosave == 1)
    w!
endif
let todelbufNr = bufnr("%")
let newbufNr = bufnr("#")
if ((newbufNr != -1) && (newbufNr != todelbufNr) && buflisted(newbufNr))
    exe "b".newbufNr
else
    bnext
endif

if (bufnr("%") == todelbufNr)
    new
endif
exe "bd".todelbufNr
endfunction

:bd可以被映射。我把它映射到F4, Shift-F4如果我需要强制关闭因为一些我不想要的改变。

如果你已经保存了最后一个文件,那么:ennew就是你的朋友(:ennew !如果你不想保存最后一个文件)。请注意,原始文件仍将在缓冲列表中(通过:ls访问)。

对我来说,close-buffers是非常有用的插件:

:删除这个关闭,你可以重新映射。