Я не можу зрозуміти, як повернутися в Normal
режим після входу Terminal
в Insert
режим ...
Врятуватися, здається, не працює.
Будь-яка ідея?
Я не можу зрозуміти, як повернутися в Normal
режим після входу Terminal
в Insert
режим ...
Врятуватися, здається, не працює.
Будь-яка ідея?
Відповіді:
Відповідь @romainl правильна, але я хотів додати трохи більше інформації для тих, хто, можливо, натрапив на це з google, як я.
Безпосередньо від документів ми отримуємо цю примітку:
У режимі терміналів є власний простір імен для відображень, до якого можна отримати префікс "t". Можна використовувати термінальні відображення для налаштування взаємодії з терміналом. Наприклад, ось як зробити карту для виходу з термінального режиму:
:tnoremap <Esc> <C-\><C-n>
З урахуванням цих знань вам, швидше за все, потрібно буде створити кілька термінальних відображень, щоб залишатися на одному рівні з вашим поточним робочим процесом (рух вкладки / вікна тощо)
tnoremap kj <C-\><C-n>
tnoremap <Esc> <C-\><C-n>:q!<CR>
У Vim 8 це також працює:
tnoremap <ESC> <C-w>:q!<CR>
N
вхід <c-w>N
, ви можете просто натиснути :
після <c-w>
. І якщо ви дійсно хочете закрити Vim з усіма його відкритими буферами та вікнами, то це :qa!
може бути кращим вибором. Але в цьому випадку можна втратити всі зміни.
Якщо ви використовуєте Tmux, можливо, ви встановили деякі "vim-подібні" прив'язки для переміщення у вікнах, які, серед іншого, захоплюють "C- \", перш ніж Vim отримає можливість використовувати його. Якщо це так, видаліть їх зі свого .tmux.conf
та перезапустіть tmux:
bind-key -n C-\ if-shell "$is_vim" "send-keys C-\\" "select-pane -l"
bind-key -T copy-mode-vi C-\ select-pane -l
:help terminal-emulator-input
.