Пользователи Vim, где вы отдыхаете правой рукой?
Давние пользователи VIM, вы держите свои пальцы на jkl;
или же hjkl
в обычном режиме?
Стандартная сенсорная печать учит нас исходному положению правой руки, на которой указательный палец j
ключ, так что ваши пальцы на jkl;
,
Но стандартные клавиши управления движением vim hjkl
,
Я возвращаюсь в vim через 10 с лишним лет (о боже мой, я состарился, когда не обращал внимания) и обнаружил, что тяготею к hjkl
... но это усложняет ввод букв в верхнем правом углу, фигурных скобок и т. д. Я хотел бы научить себя использовать самый эффективный / прагматичный метод сейчас, а не переучивать его позже.
Давние, хардкорные пользователи vim, что лучше?
Замечания:
- Больше совпадений с тем, как сенсорные машинистки ориентируются в vi?
- Я думаю, что это проходит "субъективный" тест, потому что речь идет о намеренном культивировании бессознательной передовой практики, а не просто о предпочтениях людей
5 ответов
Я думаю что jkl;
на самом деле более подходящее использование для vi. Для одного, h
а также l
на самом деле не так важно. w
, e
, а также b
значительно более полезны для горизонтальной навигации. В качестве бонуса, ;
легко получить, если язык требует этого. Слабый палец на k
болит, и тебе не нужен твой самый сильный палец на h
когда это должно быть на j
который, вероятно, является наиболее используемым из четырех.
вступление
Ни одно из предыдущих 2 решений не было на 100% удовлетворительным. Я предлагаю третий способ, который сочетает в себе лучшее из обоих миров
Моя рекомендация: "вверх-влево-вправо"
Держите вверх / вниз, где они есть, затем сделайте 3-й и 4-й пальцы влево и вправо
Затем, чтобы избежать перезаписи базовых функций Vim: бросьте все, что было раньше ; к пустой кнопке h
В качестве милого бонуса клавиша " l " теперь означает " влево ";)
Noremap LH
карта норм; L
Северная карта h;
Предыдущие "вторые", которые используют макет "влево-вверх-вправо":
Выбор 1: "ХЙКЛ"
@ альтернативная рекомендация. Связки клавиш остаются по умолчанию (hjkl), правая рука остается в исходном ряду (jkl;)
- плюсы:
- j (вниз) и k (вверх) остаются на ваших основных 2 пальцах, где они заслуживают
- минусы:
- Вы должны дотянуться до ч (слева). Даже если это не так широко, как w, e, b, это все равно кровавая кнопка со стрелкой, и было бы неплохо иметь на домашнем ряду
- В основном: все 4 пальца не покоятся на кнопках со стрелками. Это смущает мою руку
Выбор 2: "JKL;"
Сдвиньте эти 4 привязки на 1, чтобы они сели на домашний ряд:
карта норм; L
Noremap LK
Северная карта КДж
Noremap JH
- плюсы:
- Нет путаницы пальцев; все стрелки естественно под пальцами
- минусы:
- Как сказал @alternative, вверх / вниз на 2-м и 3-м пальце очень "неоптимально"
- Точно так же самый сильный палец на левой стороне также является пустой тратой
Я держу руки на домашнем ряду, в обычной манере касания. Редко я использую клавишу h для перемещения, так как перемещение на одну позицию влево обычно не является эффективным способом перемещения (и на самом деле не соответствует сущности Vim).
Я это понимаю hjkl
используется по историческим причинам (т. е. вот почему vim использует клавиши hjkl в качестве клавиш со стрелками) и не основан на каком-либо эргономическом обосновании.
Лично я предпочитаю придерживаться подхода, рекомендованного оконным менеджером i3, который, как объяснено в FAQ, почему в конфигурации по умолчанию используется jkl; вместо хйкл? это эргономичный выбор.
i3 использует
jkl;
потому что эти клавиши составляют "домашний ряд" под правой рукой при сенсорном наборе.
Проверьте это на vim, переназначая hjkl на jkl;
Хотя я понимаю философию 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