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

116

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

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

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

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

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


Примечание:

  1. Больше совпадений с Как машинисты работают в vi?
  2. Я думаю, что это проходит "субъективный" тест, потому что это сознательное культивирование бессознательного передового опыта, а не просто предпочтения людей.
Сукотто
источник
26
Как это не настоящий вопрос ? Он спрашивает, где держать пальцы. Это полностью отвечает.
альтернатива
«Лучшая практика» в этом случае субъективна. Люди разные и возьмут руки туда, где им удобно.
Randy Morris
1
Я начинаю, и у меня такая же проблема, jklç (pt keyboard) лучше всего подходит для набора текста на клавиатуре компьютера. Это естественно. Я не хочу, чтобы vim заставлял меня забывать о правильном способе набора текста, на который я потратил так много обучения и практики.
ancm
1
@RandyMorris Конечно, люди разные, и они должны делать то, что лучше всего подходит для них, однако это не значит, что определенные методы лучше в большинстве ситуаций, на ум приходят домашние клавиши для обычного набора текста слепым способом. Поэтому я не верю аргументу, что на этот вопрос нельзя ответить, потому что он субъективен, и если это действительно так, то должен быть ответ с информацией, демонстрирующей, почему нет четкой передовой практики.
jonvw

Ответы:

118

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

альтернатива
источник
Вот дерьмо. Я пользуюсь vim несколько лет и всегда использую hjkl для стрелок. Хотя я понимаю, что предложенный вами способ более эффективен, я сомневаюсь, что когда-нибудь у меня хватит смелости переключиться на него.
Михаил Калашников
2
О боже, что это за кроличья нора, с которой я начал ...
Джейсон Келли
16

вступление

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

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

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

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

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

noremap lh
noremap; l
noremap h;



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


Вариант 1: «hjkl»

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

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


Вариант 2: "jkl;"

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

noremap; l
noremap lk
noremap kj
noremap jh

  • плюсы:
    • Нет путаницы в пальцах; все стрелки естественно под пальцами
  • минусы:
    • Как сказал @alternative, нахождение вверх / вниз на 2-м и 3-м пальцах очень "неоптимально"
    • Точно так же самый сильный палец слева - тоже пустая трата времени.
Буков
источник
1
Спасибо. Что касается вашей рекомендации, единственное, что пока не работает, - это переключение между разделениями с помощью Ctrl + W + <direction>.
Рафал Цеслак
11

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

Джейсон Даун
источник
6

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

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

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

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

mloskot
источник
4

Хотя я понимаю философию Vim о том, что все движения доступны в домашнем ряду, я обнаружил, hjklчто это противоречит интуиции. Я думал, что гораздо более разумная карта будет похожа на настройку wasd с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
vexe
источник
2
Это подозрительно похоже на emacs!
rlms 01