Ответ 1
:ino <C-C> <Esc>
^ C обычно является ключом "get-me-out-of-here-now-please", если у вас есть автозапуск, который вам не нужен, C-C становится вашим другом.
Я читаю Стив Лош Узнать Vimscript Hard Way и добавил к моему .vimrc
" make status line red while in insert mode
augroup hi_statusline
autocmd!
autocmd InsertEnter * hi StatusLine ctermbg=15 ctermfg=9
autocmd InsertLeave * hi StatusLine ctermbg=238 ctermfg=253
augroup END
Я заметил странное поведение. Иногда я ударял C-c, чтобы выйти из режима вставки, который отлично работает и документирован. Когда я это делаю, событие InsertLeave не срабатывает. Когда я использую ESC, он работает нормально. Это известная странность vim? Возможно, существует обходное решение, связанное с другим событием, которое предполагает, что функция InsertMode больше не активна?
ИЗМЕНИТЬ | Meh, добавив inoremap <C-c> <ESC>
, разрешает его, и, насколько я могу судить, абсолютно никаких побочных эффектов, поскольку C-c уже делает то, что делает ESC (возвращается в нормальный режим). Исправьте меня, если я ошибаюсь.
:ino <C-C> <Esc>
^ C обычно является ключом "get-me-out-of-here-now-please", если у вас есть автозапуск, который вам не нужен, C-C становится вашим другом.
Это описано в разделе :help i_CTRL-C
:
CTRL-C Quit insert mode, go back to Normal mode. Do not check for
abbreviations. Does not trigger the |InsertLeave| autocommand
event.
Как обычно, Bram соответствует целям дизайна.
:help design-documented