Ответы:
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возвращает вас обратно в режим вставки.