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


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

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

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

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

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


Примечание:

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

5 ответов:

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

интро

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

моя рекомендация: "вниз-вверх-влево-вправо"

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

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

в качестве милого бонуса,"l ключ" теперь расшифровывается как "левый" ;)

noremap l h
noremap ; l
noremap h;



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

выбор 1: "hjkl"

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

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


выбор 2: "jkl;"

сдвиньте эти 4 привязки более 1 так они сидят на домашнем ряду:

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

  • плюсы:
    • нет путаницы пальцев; все стрелки находятся под пальцами, естественно
  • минусы:
    • как сказал @alternative,вверх/вниз быть на 2-м и 3-м пальце очень "неоптимально"
    • точно так же, самый сильный палец находится на левый это тоже пустая трата

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

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

    nnoremap j h
    nnoremap k j
    nnoremap i k

я обнаружил, что это очень легко ориентироваться с очень natrually.

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

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

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

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

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

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

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