Неможливо вийти з Vim навіть за допомогою q!


15

Я не можу вийти з 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.