Ответы:
Ctrl-Cи Escне совпадают в vi
/ vim
в большинстве режимов, включая режим вставки. Разница в том, что Escтриггеры сокращений пока Ctrl-cнет. Имеет ли это значение для вас, зависит от того, используете ли вы или какие-либо плагины, которые вы используете, сокращения.
Обратите внимание , что безопаснее предположить , Escи Ctrl-Cделать не означает то же самое в vim
. Другой пример с этого же сайта - выход из режима вставки блока (не в vi
).
Я думаю, что вы имеете в виду vim
, нет vi
.
Это действительно работает vim
, хотя я бы не использовал его, если бы не был уверен на 100%, что никогда не коснусь операционной системы, отличной от Linux. Причина в том, что другие ОС могут иметь свои собственные реализации vi
, которые не реализуют это, и вы можете обнаружить, что при работе vi
на этих платформах Ctrl-C имеет свое традиционное поведение: прерывать процесс и оставлять ваш терминал в странном состоянии. ,
Если вы имеете в виду vim
, есть небольшая разница. CTRL-C
не проверяет наличие сокращений и не вызывает InsertLeave
событие. Таким образом, вы или плагины определили любые autocmd
операторы, которые зависят от того InsertLeave
, будут ли они срабатывать.
Из официальной документации http://vimhelp.appspot.com/insert.txt.html :
<Esc> or CTRL-[ End insert or Replace mode, go back to Normal mode. Finish
abbreviation.
CTRL-C Quit insert mode, go back to Normal mode. Do not check for
abbreviations. Does not trigger the InsertLeave autocommand
event.
Вы можете задать отображение для CTRL-C
к <esc>
, то это вызовет InsertLeave
.
Type :quit<Enter> to exit Vim
и заставляет меня искать ответ. Нажатиеi
возвращает вас обратно в режим вставки.