退出vim,当缓冲区有未保存的更改并且未命名时?

时间:2015-08-11 07:06:22

标签: vim editor

我创建了一个空白"暂存缓冲区" (使用:vnew在vim中(即与特定文件无关)。然后我玩了一些文字,现在我只想退出编辑器 - 不保留这个"暂存缓冲区"的内容。

当我输入命令时:

:q!

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

如何从这种状态退出vim?

2 个答案:

答案 0 :(得分:15)

当你有一个修改过的隐藏缓冲区时会发生这种情况。无论如何都要使用: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.

如果有人想要复制它:

  • 启动vim并修改未命名的缓冲区
  • 编辑另一个文件(您可能需要:set hidden),即:e README
  • 尝试退出:q!

答案 1 :(得分:3)

充其量你可以称之为"瞬态"缓冲区(在内存中但与特定文件无关)但您使用:vnew创建的内容 a" scratch"缓冲液中。

在Vim," scratch" buffer是一个普通的缓冲区,您可以在其中设置一组本地选项。可以使用以下命令完成:

:vnew | setlocal nobuflisted buftype=nofile bufhidden=wipe noswapfile