Nie można wyjść z Vima, nawet używając q!

15

Nie mogę wyjść z vima nawet podczas pisania :q!. Dostaję błąd

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

Myślę, że bufor jest tylko do odczytu NetrwTreeListing.

Tyler Durden
źródło

Odpowiedzi:

11

Aby trwale rozwiązać ten problem z netrw, dodałem to do mojego .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

Od Tima Pope'a .

Matthias Braun
źródło
6

Zwykle dzieje się tak, jeśli są zmodyfikowane dwa lub więcej buforów, a Vim zwykle przełącza się między nimi i wyświetla komunikat o błędzie. Kiedy więc :q!przerwie bieżący bufor, nie przerwie on drugiego zmodyfikowanego bufora, dlatego Vim chroni cię przed utratą zmian i wyświetla ten komunikat o błędzie.

Jeśli masz absolutną pewność, chcesz przerwać wszystkie modyfikacje wszystkich załadowanych buforów, po prostu użyj:qa!

Christian Brabandt
źródło
5

Próbować

:bdelete!

lub

:bd!

w skrócie. Oznacza to „usunięcie bufora” i zamknie otwarty bufor. (Podziękowania dla Emila Asmussena )

Po tym powinieneś być w stanie zrobić :q!normalnie.

James
źródło
2
Ok, ale dlaczego nie pozwala mi odejść?
Tyler Durden