Один из лучших советов по использованию vim, который я узнал до сих пор, заключается в том, что вместо клавиши Esc можно нажать Ctrl + C или Ctrl + [. Однако я использую клавиатуру dvorak, поэтому Ctrl + [ немного недоступна для меня, поэтому я в основном использую Ctrl + C. Теперь я где-то читал, что эти две комбинации клавиш фактически не имеют точно такого же поведения и что лучше использовать Ctrl + [. Я до сих пор не сталкивался с какими-либо проблемами, хотя хотел бы знать, в чем разница между ними?
В чем разница между <C-C> и <C - [> в vim?
Ответ 1
Согласно документации Vim, Ctrl + C не проверяет аббревиатуры и не вызывает событие автокоманды InsertLeave
, а Ctrl + [ делает.
Один из вариантов заключается в использовании следующего для переназначения Ctrl + C
inoremap <C-c> <Esc><Esc>
Ответ 2
Чрезвычайно поздний ответ, но у меня был один и тот же вопрос, и я нашел один практический пример, который помогает объяснить разницу, так почему бы и нет.
Если вы выберете визуальный блок, а затем измените его на c
или добавьте что-то в конец с помощью A
, если вы выйдете с <Esc>
, то такое же изменение произойдет во всех строках визуальный блок (что действительно полезно! См. :help v_b_A
); если вы выйдете с помощью <C-c>
, этого не произойдет, только одна строка получит изменение. Возможно, есть и другие подобные вещи, которые я не понимал, что мне не хватает <C-c>
...
Ответ 3
Как оказалось, <C-[>
точно совпадает с Esc, они одинаковы. Поэтому нет никакой необходимости задаваться вопросом о какой-либо разнице.:)