Пользователи 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-ий способ, который сочетает в себе лучшее из обоих миров
моя рекомендация: "вниз-вверх-влево-вправо"
сохранить вверх/вниз где они находятся, а затем сделать 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;