Невозможно выйти из Vim, даже используя q!


14

Я не могу выйти из vim, даже когда печатаю :q!. Я получаю ошибку

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

Я думаю, что буфер является NetrwTreeListing только для чтения.

Ответы:


11

Чтобы навсегда решить эту проблему с 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

От Тима Папы .


6

Обычно это происходит, если есть два или более буферов, которые были изменены, и Vim обычно переключается между ними и показывает сообщение об ошибке. Поэтому, когда :q!будет отменен текущий буфер, он не будет прерывать другой модифицированный буфер, поэтому Vim защищает вас от потери изменений и выдает это сообщение об ошибке.

Если вы абсолютно уверены, что хотите отменить все изменения во всех загруженных буферах, просто используйте:qa!


5

Пытаться

:bdelete!

или

:bd!

коротко. Это означает «удаление буфера» и закроет открытый буфер. (Кредит Эмилю Асмуссену )

После этого вы сможете делать все :q!как обычно.


2
Хорошо, но почему это не позволяет мне бросить?
Тайлер Дерден
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.