Как выйти из сеанса оболочки, начатого с: bel терминал ++ noclose чистка закрытие окна - PullRequest
0 голосов
/ 30 июня 2019

Я использую vim 8.1.x на Mac OS X.

В моем vimrc есть

autocmd VimEnter * :bel terminal ++noclose

Цель состоит в том, чтобы терминал был открыт снизу в vim.

  1. Когда я пытаюсь выйти из vim, закрывая все буферы
    :qa

Он не выходит из терминала внизу

Я вручную набрал exit в терминале для выхода.Терминал закрыт, но терминал буфера все еще открыт.

Как можно выйти из vim, закрыв все окна, включая терминал?

1 Ответ

1 голос
/ 01 июля 2019

Из документации Vim для E947:

Пока задание выполняется, буфер считается измененным, и Vim не может быть легко завершен, см. Отказаться.

Есть несколько вариантов, которые вы можете использовать. Одним из них является использование :qa! для выхода. Другой - установить autocmd для завершения всех окон терминала при выходе:

autocmd ExitPre * for i in term_list() | exe ':bd! ' . i | endfor

Перехватывает событие ExitPre и удаляет все буферы с терминалами в них, когда это событие происходит. Однако обратите внимание, что если ваш выход будет прерван из-за изменения другого буфера, ваши терминалы все равно будут закрыты. Этого не избежать, поскольку Vim не будет различать модифицированные терминалы и другие модифицированные буферы.

...