Помимо требуемого положения и движения руки, есть ли разница между использованием hjkl и клавишами со стрелками? Могу ли я использовать любой из них взаимозаменяемо и ожидать такого же поведения? Единственное отличие, о котором я могу думать, заключается в том, что клавиши со стрелками работают в режиме вставки, поэтому вы сохраняете штрихи, если вам нужно переместить 1-2 символа.

Примечание. Я использую альтернативную раскладку клавиатуры, и клавиши hjkl перепутаны. У меня есть программируемый слой на моей клавиатуре, и мне интересно, должен ли он иметь hjkl или клавиши со стрелками. Я бы предпочел использовать клавиши со стрелками, поскольку их можно использовать во всех программах.

vim
1
user6058447 5 Июл 2017 в 18:18

1 ответ

Лучший ответ

Клавиши со стрелками против h, j, k, l

Вы правы в своей оценке. Они эквивалентны, за исключением того, что клавиши со стрелками также работают в режиме вставки.

(То же самое верно и в нескольких других местах, например, вы можете использовать стрелки влево / вправо для перемещения внутри команды или поиска / замены, которые вы вводите, но вы не можете использовать hjkl для перемещения в этих случаях.)

Полагаю, есть еще одно отличие - поскольку это отдельные ключи, их можно сопоставить с отдельными объектами. Так, например, если вы переназначаете h, это не повлияет на функцию <Left>, и наоборот.

Другие ключи

Вы спрашивали о некоторых других ключах в комментариях.

X - Bkspc, x - Удалить, 0 - Начало, $ - Конец, R - Вставить

Некоторые из них эквивалентны, но не все.

X, X, backspace, удалить

x и <Del> эквивалентны и даже имеют один и тот же узел в тексте справки. Оба они удаляют символы под курсором и после него.

X и <BS> оба удаляют символы слева от курсора. Но в разных режимах: X делает это в обычном режиме, а <BS> делает это в режиме вставки. Если вы находитесь в обычном режиме, <BS> просто перемещается назад на один символ без изменения текста (поэтому он ведет себя как h).

0, $, Начало, Конец

Они взаимозаменяемы.

R, Вставить

Это не то же самое. <Insert> работает как i и вставляет. R переходит в режим вставки, но особым образом, когда он перезаписывает символы, а не вставляет перед ними.

5
Dan Lowe 8 Июл 2017 в 21:34
Это относится и к любым другим командам (например, X - Bkspc, x - Delete, 0 - Home, $ - End, R - Insert)?
 – 
user6058447
7 Июл 2017 в 21:44
Мне было интересно, одинаково ли ведут себя эти пары ключей. Та же ситуация, когда кажется, что я могу использовать их как взаимозаменяемые.
 – 
user6058447
7 Июл 2017 в 21:50
Я расширил ответ по поводу некоторых из этих дополнительных символов. Вы можете найти много информации об этом в справочной системе vim, которая очень обширна, например :help x или :help <BS>
 – 
Dan Lowe
8 Июл 2017 в 21:35