Пользователи Vim, где вы отдыхаете правой рукой?

Долгосрочные пользователи vim, вы держите пальцы в jkl; или hjkl в нормальном режиме?

Стандартное нажатие на ввод подсказывает нам, что исходное положение правой руки имеет указательный палец на кнопке j, поэтому ваши пальцы находятся на jkl;.

Но стандартными клавишами движения vim являются hjkl.

Я возвращаюсь в vim через 10+ лет (omg, я устал, когда не обращал внимания) и оказываюсь тяготеющим к hjkl... но это делает его сложнее набирать верхние правые буквы, фигурные скобки и т.д. Я бы хотел научиться самому использовать наиболее эффективный/прагматический метод вместо того, чтобы переучивать позже.

Долгосрочные, хардкорные пользователи vim, какая лучшая практика?


Примечание:

  • Большее совпадение с Как сенсорные машинисты перемещаются в vi?
  • Я думаю, что это проходит "субъективный" тест, потому что он намеренно культивирует бессознательную лучшую практику, а не просто о предпочтениях людей.

Ответ 1

Я думаю, что jkl; на самом деле более подходящее использование для vi. Во-первых, h и l действительно не имеют значения. w, e и b значительно полезнее для горизонтальной навигации. В качестве бонуса ; легко получить, если язык требует этого. У вас слабый палец на k болит, и вам не нужен ваш самый сильный палец на h, когда он должен быть на j, который, вероятно, наиболее часто используется из четырех.

Ответ 2

Введение

Ни один из двух предыдущих решений не был удовлетворительным на 100%. Я предлагаю третий способ, который сочетает в себе лучшее из обоих миров


My Recomendation: "down-up-left-right"

Держите вверх/вниз, где они есть, затем сделайте 3-й и 4-й пальцы влево и вправо

Затем, чтобы избежать перезаписи базовых функций Vim: Бросьте все, что было на ;, на кнопку h

В качестве милого бонуса клавиша " l" теперь означает " левая";)

noremap l h
    noremap; л
    noremap h;



Предыдущие "бегуны", которые используют макет "left-down-right-right" :

Выбор 1: "hjkl"

@alternative . Keybinds остается по умолчанию (hjkl), справа остается в домашней строке ( jkl;)

  • плюсы:
    • j (вниз) и k (вверх) оставайтесь на своих основных 2 пальцах, где они заслуживают
  • минусы:
    • Вы должны достигнуть уровня h (слева). Даже если это не используется как w, e, b, оно все еще является чертовой кнопкой стрелки, и было бы неплохо иметь в домашней строке
    • В принципе: все 4 пальца естественно не опираются на кнопки со стрелками. Это смущает мою руку




Выбор 2: "jkl;"

Сдвиньте эти 4 привязки более 1, чтобы они сидели в домашней строке:

noremap; л
    noremap l k
    noremap k j
    noremap j h

  • плюсы:
    • Нет путаницы в пальцах; все стрелки находятся под пальцами естественно
  • минусы:
    • Как сказал @alternative, вверх/вниз на втором и третьем пальцах очень "неоптимальный"
    • Точно так же самый сильный палец, находящийся на слева, также является отходами

Ответ 3

Я держу руки в домашнем ряду, в обычном манере прикосновенности. Редко я использую клавишу h для перемещения, так как перемещение одного пространства влево обычно не является эффективным способом перемещения (и не соответствует сути Vim).

Ответ 4

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

    nnoremap j h
    nnoremap k j
    nnoremap i k

Я нашел, что это очень легко ориентироваться с очень натуралистически.

j:left
i:up
k:down
l:right

Для переключения в/из режима вставки/нормального использования я лично использую Alt-e, так как я почти всегда использую Gvim и не должен беспокоиться о том, что некоторые терминалы имеют проблемы с Alt.

    nnoremap <A-e> i
    inoremap <A-e> <esc>l

Ответ 5

Я понимаю, что hjkl используется по историческим причинам (т.е. Вот почему vim использует ключи hjkl в качестве клавиш со стрелками) и он не основан на эргономическом обосновании.

Я лично предпочитаю следовать подходу, рекомендованному i3 window manager, который, как объясняется в FAQ на Почему в конфигурации по умолчанию используется jkl; вместо hjkl? является эргономичным выбором.

i3 использует jkl;, потому что эти клавиши составляют "домашнюю строку" под правой рукой при нажатии на ввод.

Проверьте это на vim, переназначив hjkl на jkl;