当缓冲区有未保存的更改且未命名时,退出vim?
我使用当缓冲区有未保存的更改且未命名时,退出vim?,vim,editor,Vim,Editor,我使用:vnew在vim中创建了一个空白的“暂存缓冲区”(即,与特定文件无关)。然后我玩了一些文本,现在我只想退出编辑器,而不是保留这个“临时缓冲区”的内容 键入命令时: :q! 维姆给了我: [No Name][+] E37: No write since last change (add ! to override) E162: No write since last change for
:vnew
在vim中创建了一个空白的“暂存缓冲区”(即,与特定文件无关)。然后我玩了一些文本,现在我只想退出编辑器,而不是保留这个“临时缓冲区”的内容
键入命令时:
:q!
维姆给了我:
[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?当您有一个修改的隐藏缓冲区时,会发生这种情况。使用
:qa代码>以退出
从:h:退出:
: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退出代码>
充其量,您可以称之为“临时”缓冲区(在内存中,但不与特定文件关联),但您使用:vnew
创建的不是“临时”缓冲区
在Vim中,“scratch”缓冲区是一个普通的缓冲区,您可以在其中设置一组本地选项。可以使用如下命令执行此操作:
:vnew | setlocal nobuflisted buftype=nofile bufhidden=wipe noswapfile
你能提供完整的复制步骤吗?我自己也尝试过,我可以使用:q
很好。不幸的是,没有。但如果它对你有效,希望我刚刚偶然发现了奇怪的情况——不太可能再次发生。现在我将尝试一些测试…嗯,当我启动一个新的vim实例时,:vnew
,进行一些编辑,我可以使用:q退出代码>。这可能是一些不寻常的情况?啊哈,我能够用:qa!从有问题的缓冲区中解脱出来代码>堆栈溢出是一个关于编程和开发问题的网站。这个问题似乎离题了,因为它与编程或开发无关。请参见帮助中心中的。也许或者会是一个更好的提问的地方。谢谢,是的,我相信我一定有第二个没有隐藏,但空的“scratch buffer”打开了,因为vim出错,但没有显示任何内容,然后当我点击enter继续时,它正在恢复内容,我怀疑vim正在切换到另一个缓冲区?