Новичок в Vim как закрыть все окна, если закрыто окно редактора?
Я довольно недавно начал использовать ВИМ, перешел из VsCode так как в arch есть проблема с записью в файлах... У меня ужа настроен NERDTree, но я никак не могу закрыть окно терминала, как мне это сделать?
autocmd BufEnter * if tabpagenr('$') == 1 && winnr('$') == 1 && exists('b:NERDTree') && b:NERDTree.isTabTree() | quit | endif
botright :terminal
Ответы (1 шт):
Вообще, чтоб выполнить vim ex-команду, когда активно окно терминала, нужно перед ней ввести Ctlr+W и потом :.
Чтоб в принципе выйти из vim закрыв все окна нужно дать команду :qa в ex режиме. Но это работает, только если нет несохраненных изменений в буферах редактирования. Иначе нужно либо сохранить все буфера, либо принудительно закрыть буфера с потерей несохраненных изменений. Это делается командой :qa! (восклицательный знак означает "закрыть принудительно").
Когда запущен терминал, то есть дополнительная сложность - он может выполнять команду и его закрытие извне в любом случае требует принудительное закрытие. Лучше всего закрыть терминал выполнив команду выхода в самом терминале. В зависимости от того, какой у вас shell, это или команда exit или символ конца файла (Ctrl+D в linux/mac или Ctrl+z в Windows). И после этого можно закрыть vim обычной командой, т.е. :qa или :qa!.
Если же нужно закрыть принудительно все окна, когда терминал в фокусе, то нужно использовать все вместе: Ctlr+W :qa!Enter.