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

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

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

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

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

  3. Хотя сейчас я не могу работать, мой наиболее вероятный путь возвращения все еще остается моей прежней работой. У меня очень ограниченный объем работы, которую я выполняю дома, поскольку основной клиент настаивает на том, чтобы вы работали из их помещений и, что более важно, использовали их оборудование. Я не думаю, что смог бы использовать какое-либо нестандартное оборудование (помимо аксессуаров, например, трекбол), даже если бы я предложил заплатить за него сам, мы как команда сильно отстранены от Corporate IT Admin. Так что в лучшем случае я могу ожидать ноутбук 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.

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

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

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

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

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), заключался в том, чтобы выделять определенные ключи в качестве привязок префиксов, с помощью которых все остальное может быть доступно без модификаторов. Это просто для некоторых видов привязки и требует усилий в других случаях (вероятно, в большинстве случаев, реально).

Например, многие привязки начинаются с префикса Cx (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 ключ)) это хитрость, чтобы сделать это. При вызове они читают следующий ключ от пользователя, а затем применяют требуемый модификатор к этому ключу, передавая результат, как если бы он был набран с использованием действительного ключа модификатора.

Следующее будет использовать цифровые клавиши на клавиатуре для представления всех клавиш-модификаторов. Затем вы можете набрать последовательность CxCb как 1x1b.

(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 по изменению и переводу входных событий также актуальна:
Chяг (elisp) Event Mod RET

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

Другие вопросы по тегам