Невозможно выйти из 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
Хорошо, но почему это не позволяет мне бросить?
Тайлер Дерден