Переназначить клавиши Vim, чтобы избежать RSI в левой руке

Я всегда страдал от RSI на левом запястье (см. здесь), и я думал, что это из-за крутящего движения, связанного с нажатием клавиш Ctrl и Shift. Поэтому я купил клавиатуру Advantage Kinesis, показанную ниже:

введите здесь описание изображения

Однако даже с этой клавиатурой, ножными педалями и сопоставлением клавиши Shift с Back Space у меня все еще есть RSI, опять же только в левой руке. Потом до меня дошло, что большая часть клавиш движения связана с левой рукой. Вот неполный список вещей на правой руке, а затем на левой руке.

Правая рука:

  • p простой оператор вставки, почти всегда используемый сам по себе
  • o писать выше/ниже текущей строки, почти всегда используется отдельно
  • i запись на курсоре, почти всегда используется сама по себе
  • u отменить, почти всегда используется отдельно
  • y yank, используется с командой движения, но только несколько спецификаторов движения справа (т.е. (, ), i...)
  • h, j, k, l, движение одного символа, используется редко.

Теперь наблюдайте

Левая рука:

  • w, e, b сдвиньте одно слово. Очень часто используется с числом или нажимается несколько раз.
  • t, f, $ в сочетании с такими ключами, как y, d или v
  • Ctrl w + h, j, k или l для перемещения окон и требует рывкового движения левой рукой.
  • Ctrl x Ctrl f всестороннее завершение (IIRC)
  • Ctrl f Ctrl g найти файл под курсором

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

Мой вопрос в том, есть ли способ сделать это, не изобретая велосипед? Например, есть ли библиотеки, которые делают это? Если нет, то если я перейду на DVORAK, решит ли это какую-либо из упомянутых мной проблем?


person puk    schedule 06.05.2013    source источник


Ответы (2)


Чтобы ответить на ваш вопрос Дворжака о ключах, которые вы упомянули:

p, o, i, u, y, j, k, e, $, x набираются левой рукой. h, l, (, ), w, b, t, f, d, v, w, g набираются правой рукой.

Итак, глядя на то, что движется, где:

Stay on Left  |    Move to Left   |  Move to Right   |  Stay on Right    
----------------------------------------------------------------------    
e $ x         |   p o i u y j k   |  w b t f d v w g |  h l ( )

Клавиши, которые вы используете, по-прежнему в основном равномерно распределены между левой и правой рукой, но большинство соло-клавиш теперь для левой руки, а большинство аккордовых последовательностей - для правой руки.

Кроме того, процесс изучения Дворака значительно замедлит вас, что поможет снизить нагрузку на запястья во время перехода.

Вы можете ввести образец того, что вы регулярно вводите, на такие веб-сайты, как http://patorjk.com/keyboard-layout-analyzer/ и посмотрите, на какое расстояние больше или меньше должны пройти ваши пальцы при различных раскладках клавиатуры. (Есть и другие полезные показатели, на которые стоит обратить внимание. Щелкайте по вкладкам слева и изучайте!)

person Bill    schedule 07.05.2013

Мне тоже не нравятся клавиши управления, поэтому я переназначил наиболее часто используемые на <space>.

Пример:

nnoremap <C-W> <space>w

Поэтому вместо Ctrl+Wh я делаю Пробелwh, и это работает очень хорошо.

person mb14    schedule 08.05.2013
comment
Дело не только в размещении, например, на кинезисе преимущество, клавиша управления нажимается большим пальцем. Дело в том, что здесь задействованы скручивающие/подергивающие движения, и вы чаще используете левую руку. - person puk; 08.05.2013
comment
Я использую colemak и не думаю, что скручиваю запястье при наборе букв, однако я делаю это, когда нажимаю клавишу Shift. У меня тоже проблема с запястьем. Может быть, вам стоит заставить себя двигать всей рукой, а не крутить. Я использовал повязку на запястье, чтобы не вывернуть запястье. - person mb14; 09.05.2013
comment
Для некоторых вещей, таких как нажатие тильды на преимуществе кинезиса, я могу сделать это без поворотов. Это относится к большинству кнопок. Исключение составляют вещи, которыми вы пользуетесь много и которые чрезвычайно повторяются. Например, назад. Я практикуюсь с ножными педалями, но у них есть две проблемы. 1) Это хорошо работает для клавиш-модификаторов (например, Shift), но не для вещей, которые вы должны нажимать, например, для возврата. 2) если у вас несколько мониторов и клавиатура прикреплена к стулу/коленам, вам будет сложнее передвигаться. - person puk; 09.05.2013
comment
Фактически, из моего комментария выше вы, вероятно, можете понять, что моя критика касается команд перемещения vim. Я нахожу менее чем тривиальным удаление слова в режиме вставки или перемещение в обычном режиме без априорного знания того, сколько слов нужно переместить, или достаточно удачливого перехода к новому предложению, или до появления уникального символа, такого как заглавная буква. - person puk; 09.05.2013
comment
C-W удалит последнее слово в режиме вставки. Однако, возможно, вам нужно выйти из режима вставки, чтобы что-то удалить, или не использовать vim... - person mb14; 09.05.2013
comment
В качестве альтернативы печатайте медленнее и делайте меньше ошибок. Вам придется меньше удалять и (возможно) получать меньше травм - person mb14; 09.05.2013
comment
Например, если я наберу «Первое правило клуба figt», имеет смысл нажать клавишу Backspace, а не переходить в обычный режим. С другой стороны, если я наберу «первое правило бойцовского клуба», мне будет легче закончить предложение, чем вернуться назад и изменить «первое» на «первое», но это требует, чтобы я все время нажимал «b», так что это не лучше. На мой взгляд, это недостаток Vim, который я начал замечать сейчас, когда использую его около 10+ часов в день. - person puk; 10.05.2013
comment
^w или #fri или даже Fr будет началом "первого". Если вы действительно не можете перемещаться с помощью vim, я предлагаю этот плагин: vim.org/ скрипты/script.php?script_id=3526 - person mb14; 10.05.2013
comment
Я ценю то, что вы имеете в виду, но эти примеры не точны. Fr приведет вас к «правилу», а не «первому», также #fri просто переводит меня в режим вставки. Плагин выглядит многообещающе, но я посмотрю на него. - person puk; 10.05.2013
comment
извините, я имел в виду ?fri, а затем Fr; надо сделать ;-) - person mb14; 10.05.2013
comment
Я бы сделал Fr, а потом понял, что еще не пришел (только на «правиле», а не на «первом»). Затем я несколько раз нажимал ; (повторить команду движения), пока не достигал места назначения. Здесь достаточно одного раза. Таким образом, вся последовательность дает: Fr;, несмотря на то, что здесь задействованы два мысленных шага. Для более сложных движений я сопоставил EasyMotion с клавишей пробела и сделал <space>Fr для интерактивной навигации. - person mdup; 17.04.2015