VIM: Разве VIM не «заменяет» использование CTRL на ESC?

Обычно рекламируется, что использование VIM устраняет необходимость отодвигать руку от основного ряда. Однако кажется, что вместо того, чтобы нажимать CTRL, я все время протягиваю руку к ESC.
Примечание. Я новый пользователь vim и пытаюсь перейти с Блокнота (Windows) на VIM. Я задаю этот вопрос, если есть какие-то проблемы в моем использовании или понимании философии VIM.


person Asad Iqbal    schedule 05.11.2011    source источник
comment
Многие люди переназначают Caps Lock для выхода (переключите их, если вы все еще хотите использовать Caps Lock). Это изменило мою жизнь.   -  person mqsoh    schedule 05.11.2011


Ответы (4)


Когда vi изначально был написан, он был написан с такой раскладкой клавиатуры:

введите описание изображения здесь

Обратите внимание, что Esc - это то место, где Tab находится на большинстве современных раскладок клавиатуры, и это было гораздо менее натянуто. Это также объясняет, почему h j k l являются правильными клавишами со стрелками в vim и почему некоторые из другие общие ключи в vim могут показаться необычным выбором.

person Randy Morris    schedule 05.11.2011
comment
вау, я видел это раньше, но только сейчас заметил, что, хотя это сделало Esc намного лучше, это поменяло это на :, который был почти таким же плохим, как Esc сейчас. ум слегка взорван - person underscore_d; 17.10.2015
comment
Как называется этот макет? - person airstrike; 10.05.2016
comment
Согласно Википедии, это машина, которую Билл Джой использовал для написания vi: en.wikipedia.org/wiki/ АДМ-3А. Я не уверен, доступна ли программная версия этой раскладки, поскольку клавиши физически отличаются от почти всех клавиатур, которые я когда-либо видел. - person Randy Morris; 10.05.2016

Я почти всегда использую Ctrl + [ вместо Esc. Это довольно простая комбинация клавиш. Единственное исключение - когда я паникую и вынужден бежать десять раз подряд.

person yosukesabai    schedule 05.11.2011
comment
Также рассмотрите возможность использования _1 _ + _ 2_. - person ib.; 05.11.2011
comment
afaik Ctrl + C пропускает некоторые вещи, например запуск события «вставка завершена». также afaik, Ctrl + [правильно их учитывает. кроме того, это менее акробатично печатать! - person underscore_d; 17.10.2015

ESC используется только при переключении из режима «Вставить / заменить» в нормальный режим. В нормальном режиме вы тратите большую часть своего времени - на поиск, прокрутку, чтение, вырезание / копирование / вставку (или, в терминах vim, на удаление / копирование / вставку) и так далее.

Хотя ESC часто используется, его не должно быть даже близко к CTRL в Блокноте. Однако есть также несколько альтернативных способов избежать нажатия клавиши ESC: http://vim.wikia.com/wiki/VimTip285, а также способы использования Caps Lock в качестве ESC: Как отобразить клавишу CAPS LOCK в VIM?

Лично я не считаю это проблемой, так как моя клавиша ESC - самая дальняя клавиша слева в верхнем ряду; Я могу ударить его, не ища, и вернуть руки в обычное положение с завязанными глазами. Мое запястье даже не сдвигается со своего места на моем ноутбуке;)

person Izkata    schedule 05.11.2011
comment
Это может дать вам действительно плохой RSI :( У некоторых людей действительно нет таких проблем, но для меня вывернуть руку, чтобы попытаться сбежать, катастрофически. - person Jan Warchoł; 29.11.2015
comment
@ JanekWarchoł Это одна из причин, по которой люди повторно отображают capslock. У меня до сих пор не было проблем, хотя, вероятно, помогает то, что я кладу руки в нестандартное положение: на QWERTY-клавиатуре пальцы моей левой руки обычно находятся на shift, a, w и d или на каком-либо варианте соседних клавиш в тот же макет (например, a, w, 3, r). Все важные клавиши остаются рядом, а esc на один ключ ближе и требует меньше усилий, чтобы дотянуться до них. - person Izkata; 29.11.2015
comment
Интересный подход. Что ж, желаю тебе никогда не иметь RSI :) - person Jan Warchoł; 29.11.2015

Как указал lzkata, он используется только для переключения из режима вставки в нормальный режим. В зависимости от того, чем вы занимаетесь, вы можете чаще ходить взад и вперед. Однако по мере того, как вы приобретете опыт работы с vim, вы обнаружите, что переключаете режимы гораздо реже. (Если вы собираетесь вносить небольшие правки разных типов в разных местах во многих строках, вы МОЖЕТЕ использовать клавиши со стрелками в режиме вставки, если терминал их поддерживает, но обычно вам следует попытаться найти другие способы обычного режима для внесения общих изменений - получить действительно хорошие навыки быстрой навигации с помощью t, T, f, F, G и т. д.)

person Colselaw    schedule 05.11.2011