Відповіді:
Ctrl-Cі Escне є однаковими в vi
/ vim
у більшості режимів, включаючи режим вставки. Різниця полягає в Escзапуску абревіатур, а Ctrl-cні. Чи важливо це для вас, залежить від того, ви або будь-які додатки, якими ви користуєтесь, використовуєте скорочення.
Зверніть увагу , що безпечніше припустити , Escі Ctrl-Cробити НЕ означає те ж саме в vim
. Ще один приклад із цього ж сайту - це при виході з режиму вставки блоку (не в vi
).
Я думаю, ти маєш на увазі vim
, ні vi
.
Це дійсно працює vim
, хоча я б не використовував його, якщо б я не був впевнений на 100%, що ніколи не торкнуся операційної системи, яка не є Linux. Причина полягає в тому, що інші ОС можуть мати власні реалізації vi
, які не реалізують це, і ви можете виявити, що при запуску vi
на цих платформах Ctrl-C має свою традиційну поведінку: переривайте процес і залишайте свій термінал у дивному стані .
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
і змусило Google повернутися назад. Якщо натиснути,i
ви повернетесь до режиму.