我使用在vim中创建了一个空白的"临时缓冲区"(即与特定文件无关):vnew.然后我玩了一些文本,现在我只想退出编辑器 - 不保留这个"临时缓冲区"的内容.
当我输入命令时:
:q!
Run Code Online (Sandbox Code Playgroud)
Vim给了我:
[No Name][+]
E37: No write since last change (add ! to override)
E162: No write since last change for buffer "[No Name]"
Press ENTER or type command to continue
Run Code Online (Sandbox Code Playgroud)
我怎样才能从这个状态退出vim?
Mar*_*rth 16
当您有修改的隐藏缓冲区时会发生这种情况.:qa!无论如何都要用.
来自:h :quit:
:q[uit]! Quit without writing, also when currently visible
buffers have changes. Does not exit when this is the
last window and there is a changed hidden buffer.
In this case, the first changed hidden buffer becomes
the current buffer.
Use ":qall!" to exit always.
Run Code Online (Sandbox Code Playgroud)
如果有人想要重现它:
:set hidden),即:e README:q!充其量您可以将其称为“临时”缓冲区(在内存中,但不与特定文件关联),但是创建时使用:vnew的不是 “临时”缓冲区。
在Vim中,“暂存”缓冲区是一个普通的缓冲区,您可以在其中设置许多本地选项。可以使用以下命令来完成:
:vnew | setlocal nobuflisted buftype=nofile bufhidden=wipe noswapfile
Run Code Online (Sandbox Code Playgroud)