即使输入:q!我也无法退出vim。我收到错误消息

E37: No write since last change (add ! to override)
E162: No write since last change for buffer...


我认为缓冲区是NetrwTreeListing只读的。

评论

我注意到,尤其是在netrw目录列表中使用x:special命令之后,会发生这种情况。

这个编辑器是我一生中见过的最差的几个数量级的废话。

#1 楼

为了永久解决netrw的这种麻烦,我将其添加到我的.vimrc中:

" Per default, netrw leaves unmodified buffers open. This autocommand
" deletes netrw's buffer once it's hidden (using ':q', for example)
autocmd FileType netrw setl bufhidden=delete


来自Tim Pope。

#2 楼

如果有两个或多个缓冲区被修改,并且Vim通常在它们之间切换并显示错误消息,通常会发生这种情况。因此,当:q!将中止当前缓冲区时,它将不会中止其他已修改的缓冲区,因此Vim可以防止丢失更改并给出此错误消息。

如果您完全确定要放弃对所有已加载缓冲区的所有修改,则只需使用:qa!

#3 楼

请尝试

:bdelete!




:bd!


简短。这代表“缓冲区删除”,将关闭您打开的缓冲区。 (贷记给Emil Asmussen)

之后,您应该可以照常执行:q!

评论


好的,但是为什么不让我辞职呢?

–泰勒·杜顿(Tyler Durden)
16年5月21日在20:09