Пользователи 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;