Требования к программному обеспечению для создания кода / редактора с симптомами типа RSI (неиспользуемые пальцы)

Я знаю и прочитал соответствующие разделы этого сайта. Я видел, как различные темы о RSI, позе и т. Д. Закрывались как не относящиеся к теме и ссылались на другой сайт / раздел. Однако я думаю, что мой вопрос будет сформулирован так, что он попадет в раздел «Требования к программному обеспечению», поскольку я ищу информацию по конкретным типам, а также конфигурацию программного обеспечения для некоторых очень конкретных медицинских проблем, которые у меня есть.

Это не тема о предотвращении RSI, это просто самое близкое, что я могу добавить в заголовок, который люди поймут с места в карьер. Возможно, я уже ответил на свой вопрос, просто задав его, но если есть что-то, о чем я не подумал, медицинские и другие проблемы:

  1. У меня есть хирургически восстановленный указательный палец правой (доминирующей руки) после удаления доброкачественной опухоли. Этот рост зажал сухожилие около 18+ месяцев, прежде чем он был обнаружен и иссечен в 2012 году. Я могу использовать палец «плоской рукой», например, для набора английского языка (например, в этом электронном письме), но действия, которые заставляют меня двигаться в сторону захвата, являются болезненно, например, при письме пером, с помощью мыши или сенсорной панели. Я могу использовать мышь, но не для дневной работы.

  2. У меня онемение и боль по неизвестной пока причине в предплечьях и мизинцах. Многократное размахивание руками или использование мизинцев делает это очень болезненным, что представляет очевидные проблемы при использовании клавиш-модификаторов при написании кода. Даже использование безымянных пальцев слишком сильно выталкивает.

  3. Хотя в настоящее время я не могу работать, я, скорее всего, смогу вернуться на свою предыдущую работу. Я выполняю очень ограниченный объем работы из дома, поскольку основной клиент настаивает на том, чтобы вы работали на его территории и, что более важно, использовали его оборудование. Я не думаю, что смогу использовать какое-либо нестандартное оборудование (помимо аксессуаров, таких как трекбол), даже если бы я сам предложил заплатить за него, мы, как команда, сильно удалены от корпоративного ИТ-администратора. Так что в лучшем случае я могу ожидать ноутбук i3 / i5 с 8 ГБ оперативной памяти. Я, вероятно, мог бы предоставить внешний монитор в дополнение к дисплею ноутбука. У нас есть административный доступ к ОС, но я не могу поставить на него собственный Linux или что-то еще, и даже если бы мне понадобились инструменты для корпоративного общения и встреч из Windows.

  4. (под редакцией). Грыжа поясничного диска, вызывающая нервную боль в обеих ногах. Опять же, я работаю над этим с физической точки зрения, но для целей этого вопроса предполагаю, что мое текущее состояние является постоянным, что исключает педали или другое использование моих ног для ввода персонажа.

Поэтому я не могу использовать мышь или сенсорную панель (не уверен, что касается мяча). Невозможно использовать клавиши-модификаторы и необходимо работать на корпоративном ноутбуке Win 7 того же типа, который может получить бизнес-менеджер / менеджер по продажам, хотя и с доступом администратора. Основным видом работы является стек LAMP, хотя существуют и другие технологии, такие как Java, C ++ и Python.

Я видел кодирование голоса Тэвисом Раддом (здесь: http://www.youtube.com/watch?v=8SkdfdXWYaI), который можно было бы использовать из дома, но не из клиентского офиса открытой планировки. Однако эта идея заставила меня подумать, что мое решение может заключаться в использовании чего-то вроде emacs с переназначенными привязками. Я, вероятно, мог бы получить ноутбук, достаточно мощный, чтобы запустить минималистичный рабочий стол X11 (скажем, возможно, Fluxbox) под Oracle VM или что-то в этом роде. Или я мог бы установить и использовать Cygwin.

Я никогда не использовал полнофункциональные IDE, но никогда не использовал emac за пределами тривиальных задач. Я бы пошел по работе с scite и некоторыми оболочками xterm. Возможно, он улучшился, но я обнаружил, что IDE немного вялые на ноутбуках, которые у нас есть. Я знаю, что IDE, а также scite будут расширяемыми, последний - под lua, но я подозреваю, что emacs предложит больше с точки зрения существующих расширений для нескольких языков, а также таких задач, как работа с репозиторием или другой доступ к серверам и т. Д. (Большинство из которых будет * nix).

Я все еще работаю над физическим обследованием и реабилитацией, но на данный момент полагаю, что эти ограничения сохранятся. Что было бы наиболее полезным, так это некоторые указания от тех, кто более знаком с emacs или IDE, такими как Eclipse или NetBeans, о том, что программное обеспечение подходит для моей цели, прежде чем я пойду и начну учиться его использовать, что мне пришлось бы сделать (бесплатно ) перед тем, как вернуться к работе, мне нужно было удариться о землю как минимум на 80% того места, где я был раньше.

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

Большое спасибо.


person Axiombadger    schedule 17.07.2014    source источник
comment
Если проблема с клавишами-модификаторами, использующими ваши мизинцы, является проблемой, я бы предложил клавиатуру, где модификаторы в основном находятся на больших пальцах, например Kinesis Advantage. Мало того, что большинство модификаторов на больших пальцах, вся клавиатура программируется на самой клавиатуре, что позволит вам перемещать клавиши по желанию без использования специального программного обеспечения на машине. Недостатком этой конкретной клавиатуры может быть форма чаши, в которой проходят пальцы, что может вызвать проблемы, если вы вообще не можете согнуть указательный палец.   -  person Randy Morris    schedule 17.07.2014
comment
В аналогичном примечании (извлеченном из конца моего ответа, где он немного похоронен) вы можете использовать другие аппаратные устройства, такие как ножные педали, для предоставления клавиш-модификаторов (и / или многих других потенциально полезных функций). xkeys.com/xkeys.php - один из таких источников.   -  person phils    schedule 17.07.2014
comment
Ножные педали - очень хорошее решение. Я сам использую для ctrl. Вы можете купить трехпедальную доску для Ctrl, Alt и Shift, если она есть. Я знаю нескольких профессиональных разработчиков, которые программируют только указательными пальцами. С ними все должно хорошо работать. Также обязательно попробуйте вертикальную мышь, прежде чем полностью списать их со счетов.   -  person Jordon Biondo    schedule 18.07.2014
comment
Спасибо за ваш вклад. Я посмотрю на клавиатуру (и), хотя я не уверен, поможет ли использование больших пальцев для клавиш-модификаторов, поскольку мне все равно придется растягивать персонажа. относительно ножных педалей. . . У меня есть другие проблемы со здоровьем, которые я не упомянул для краткости. Один из них - грыжа поясничного диска, вызывающая нервную боль в обеих ногах. Опять же, я работаю над этим с физической точки зрения, но для целей этого вопроса предполагаю, что мое текущее состояние является постоянным, что исключает педали.   -  person Axiombadger    schedule 18.07.2014
comment
Я пропустил там немного вертикальных мышей, извините, не видел их раньше. Я посмотрю на это, так как это может быть полезно для общего использования на компьютере, даже если мне понадобится какое-то решение emacs / vi для реального кодирования.   -  person Axiombadger    schedule 18.07.2014
comment
Я нашел это Эшли Фенелло: youtube.com/watch?v=TEBMlXRjhZY Это похож на работу Тэвиса Радда и ссылается на нее, но использует распознавание речи Windows для управления vim (с парой надстроек). Часть голосового ввода не кажется такой чистой (как в Windows vs Dragon), но это бесплатная и простая в настройке система, по крайней мере, для обучения использованию vim.   -  person Axiombadger    schedule 02.08.2014
comment
Я не пробовал использовать распознавание речи Windows и Dragon 12.5. В Windows Speech так много неверных слов, в «Драконе» - меньше, и у меня сложилось впечатление, что он узнает намного лучше. Я еще не научился программировать, просто проза, но работаю над его обучением.   -  person Axiombadger    schedule 20.08.2014


Ответы (1)


Привязки Emacs по умолчанию сильно используют клавиши-модификаторы; однако есть альтернативы значениям по умолчанию, не требующие ручной настройки всех привязок.

Vi / Vim может быть хорошим выбором альтернативного редактора, поскольку вместо использования клавиш-модификаторов для запуска команд вы переключаетесь между «режимом вставки» (в котором вводимые вами клавиши создают текст) и «командным режимом» (в котором клавиши вы вводите команды редактирования триггера), поэтому вам редко (если вообще когда-либо?) потребуется удерживать несколько клавиш одновременно.

Однако Emacs все еще может быть желательным. Преимущество Emacs заключается в том, что он может интегрироваться со многими другими процессами и приложениями, что дает вам знакомый интерфейс клавиатуры для многих действий, помимо редактирования текста. Я бы сказал, что это в большей степени относится к Unix, чем к Windows, но я уверен, что преимущества все же есть.

Есть также способы использовать подход Vi в Emacs, что может быть даже лучшим ответом. Я понимаю, что пакет evil-mode («расширяемый слой vi для Emacs») является наиболее полным подходом к использованию привязок в стиле vi в Emacs.

Я сам не являюсь пользователем vi, поэтому оставлю это на усмотрение других.

Придерживаясь модального подхода к редактированию, God Mode предоставляет вам модальное разделение, подобное Vi, но с использованием знакомого Последовательности клавиш Emacs (перейдите по ссылке, чтобы лучше понять это утверждение). Автор говорит: «Вы обнаружите, что этот режим работает на удивление естественно и что вы уже знаете, как запускать существующие команды Emacs».

Оставляя в стороне модальное редактирование, такие пакеты, как ErgoEmacs, стремятся обеспечить более удобные сочетания клавиш, чем значения по умолчанию, и могут быть полезны.

Пользовательский подход, о котором я читал (использованный Xah Lee), заключался в выделении определенных ключей в качестве привязок префиксов, через которые можно было получить доступ ко всему остальному без модификаторов. Это просто для некоторых видов привязки и требует усилий в других случаях (вероятно, в большинстве случаев реалистично).

Например, очень многие привязки начинаются с префикса C-x (ctrl + x), но можно назначить весь этот префикс последовательности, которая не требует модификатора. например: (global-set-key (kbd "<f6> x") 'Control-X-prefix) позволит вам ввести F6, а затем x вместо удерживания Ctrl при вводе x.

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

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

Функции event-apply-*-modifier (для shift, control, meta (ваша клавиша Alt), super, hyper, & alt (не ваша клавиша Alt)) являются уловкой для этого. При вызове они считывают следующий ключ от пользователя, а затем применяют к нему требуемый модификатор, передавая результат, как если бы он был набран с использованием настоящего ключа-модификатора.

Далее будут использоваться цифровые клавиши на клавиатуре для представления всех клавиш-модификаторов. Затем вы можете ввести последовательность Cx Cb как 1 x 1 б.

(define-key function-key-map (kbd "<kp-1>") 'event-apply-control-modifier)
(define-key function-key-map (kbd "<kp-2>") 'event-apply-meta-modifier)
(define-key function-key-map (kbd "<kp-3>") 'event-apply-super-modifier)
(define-key function-key-map (kbd "<kp-4>") 'event-apply-shift-modifier)
(define-key function-key-map (kbd "<kp-5>") 'event-apply-hyper-modifier)
(define-key function-key-map (kbd "<kp-6>") 'event-apply-alt-modifier)

Вам нужно будет проделать некоторую дополнительную работу, чтобы вы могли комбинировать несколько модификаторов для одного ключа, но это возможно.

Страница руководства elisp по изменению и преобразованию входных событий также актуальна:
C-h i g (elisp) Event Mod RET

Совершенно другой подход - использовать ножные педали (или другое устройство ввода; например: http://xkeys.com/xkeys.php), чтобы вы могли использовать клавиши-модификаторы по назначению, без необходимости повторного связывания чего-либо вообще.

person phils    schedule 17.07.2014
comment
Мне также нравится идея злого режима. Уменьшение использования модификаторов, но сохранение других вещей, которые предлагает Emacs. Правильно ли я предполагаю, что как часть Emacs больше, чем мандата редактора, он может предоставить мою собственную настройку редактирования на моем локальном компьютере, даже при редактировании файла на удаленной машине * nix, например, через ssh? То есть мне не пришлось бы на каждом тестовом сервере настраивать свою учетную запись пользователя, копировать мои привязки и т. Д. (Или устанавливать emacs и / или vi, если их вообще нет). - person Axiombadger; 18.07.2014
comment
Да, в Emacs есть механизм под названием Tramp, который облегчает это. Вы можете редактировать и сохранять удаленные файлы по множеству протоколов, и это дает вам хорошие преимущества (в частности, вызов команды оболочки из удаленного буфера выполняет команду на удаленном сервере). Однако Tramp из Windows не всегда такой простой и быстрый. В Windows я фактически предпочел разместить виртуальную машину Linux (не настольную) и запускать внутри нее Emacs, используя Cygwin для отображения X. Главное, чего вам не хватает в Windows, - это SSH ControlMaster, который поддерживает постоянное соединение открытым для активности Tramp. - person phils; 18.07.2014
comment
У меня есть пара связанных ответов: stackoverflow.com/q/2690050/324105. Вы также можете использовать Putty и его протокол Plink для Tramp под Windows. Это давно мне не нужно, поэтому я не знаю, какое лучшее решение на сегодняшний день. - person phils; 18.07.2014
comment
Я добавлю, что Tramp идеально подходит для легкого использования, но если вы будете долгое время работать на сервере и можете установить на нем Emacs, я бы определенно подумал об этом. Я всегда устанавливаю Emacs локально на свои виртуальные машины разработки для повышения производительности. Что касается vi, людям нравится то, что вы можете практически гарантировать, что какая-то его форма присутствует на любом * nix сервере. - person phils; 18.07.2014
comment
Спасибо, в прошлом я использовал шпатлевку, когда мне требовался терминальный доступ * nix на машине с Windows. Раньше я использовал серверы X11 на базе Windows на удаленном хосте * nix, но не подумал сделать это на локально размещенной виртуальной машине. Это немного снизит нагрузку на локальный компьютер, что, несмотря на значительные улучшения встроенных графических процессоров за последние 3 или 4 года, по-прежнему вызывает беспокойство. - person Axiombadger; 18.07.2014
comment
Другая вещь, которую я хотел сделать в emacs, - это на самом деле неустановленные комбинации, которые для меня вредны. Например, это мой инстинкт - цитировать мизинцем и средним пальцем левой руки (британская клавиатура). Я делаю это даже сейчас, когда печатаю, что больно, но я замечаю это только после того, как сделаю это несколько раз. Я вижу здесь еще один из ваших ответов: stackoverflow.com / questions / 13965966 / unset-key-binding-in-emacs, что правильный способ сделать это - nil bind, я подозревал, что что-то подобное будет доступно. Если бы не получалось, я бы перестал этим заниматься. . . в конце концов. - person Axiombadger; 18.07.2014
comment
Не думайте, что вам нужно принимать этот ответ, Axiombadger. Я надеюсь, что мои комментарии будут полезны, но я думаю, что это более широкий вопрос, чем просто ракурсы, которые я затронул, и я не считаю себя достаточно квалифицированным, чтобы давать советы по этому вопросу в целом. Я действительно надеюсь, что другие люди все равно будут весить (даже если просто указать на другие ресурсы). - person phils; 21.07.2014
comment
Хорошо, я пока снял с него отметку и посмотрю, что произойдет, хотя до сих пор спасибо за ваши комментарии, они, по крайней мере, подтвердили, что я на правильном пути или, по крайней мере, на правильном пути. Я добавил теги для vi и evil-mode, а сейчас и vim, так что оставлю его немного и посмотрим, что вернется. - person Axiombadger; 22.07.2014