具有 RSI 类型症状(无法使用的手指)的代码创建/编辑器的软件要求 [英] Software Requirements for Code Creation / Editor with RSI Type Symptoms (unusable fingers)

查看:20
本文介绍了具有 RSI 类型症状(无法使用的手指)的代码创建/编辑器的软件要求的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我知道并阅读了本网站的相应主题部分.我已经看到有关 RSI、姿势等的各种主题被关闭为偏离主题并提到另一个站点/部分.但是,我认为我的问题的措辞将属于软件要求"部分,因为我正在寻找有关特定类型的输入以及针对我遇到的一些非常具体的医疗问题的软件配置.

I do know and have read the appropriate topics section for this site. I have seen various topics about RSI, posture etc closed as being off topic and referred to another site/section. I think however that my question will be worded such that it comes under the "Software Requirements" section as I am looking for input on specific types as well as configuration of software for some very specific medical issues I have.

这不是一个关于预防 RSI 的话题,它只是我能写的最接近的标题,人们会立即理解.我可能已经通过提问回答了我的问题,但万一有什么我没有想到的,医疗和其他问题是:

This is not a topic about prevention of RSI, it is just the closest I can put in a title that people will understand off the bat. I may have already answered my question just by asking it, but in case there is something I have not thought of, the medical and other problems are:

  1. 在切除良性肿瘤生长后,我的右手(惯用手)食指进行了手术修复.在 2012 年发现和切除之前,这种增长已经夹住了肌腱大约 18 个月以上.我可以使用平手"手指,例如打英语(例如这封电子邮件),但让我走向抓地力的动作是痛苦,例如用笔书写或使用鼠标或触摸板.我可以使用鼠标,但不能在接近一天工作的任何地方使用.

  1. I have a surgically repaired right (dominant hand) index finger following the removal of a benign tumor growth. This growth had clamped the tendon for some 18+ months before it was discovered and excised in 2012. I can use the finger "flat handed" such as for typing English (this email for example) but actions which have me move towards a grip are painful, writing with a pen or using a mouse or touch pad for example. I can use the mouse but not for anywhere near a days work.

我的前臂和小指都有不明原因的麻木和疼痛.反复扇动我的手或使用小指使这些非常痛苦,这在编写代码时使用修饰键存在明显问题.即使使用无名指也会过度伸出.

I have numbness and pain of an as yet unknown cause in both forearms and little fingers. Repeated fanning of my hands or use of the little fingers makes these very painful which presents obvious problems in using modifier keys when writing code. Even using the ring fingers instead pushes out too much.

虽然目前无法工作,但我最有可能的回归途径仍然是我以前的工作.我在家做的工作量非常有限,因为主要客户坚持要求您在他们的场所工作,更重要的是使用他们的设备.我不认为我可以使用任何定制设备(除了配件,如轨迹球),即使我愿意自己支付费用,我们作为一个团队与企业 IT 管理员相距甚远.所以充其量我可以期待配备 8GB RAM 的 i3/i5 笔记本电脑.除了笔记本电脑显示器之外,我可能还可以提供/提供外部显示器.我们确实拥有操作系统的管理员访问权限,但我无法将本机 Linux 或任何东西放在它上面,即使我可以,我也需要来自 Windows 的公司通信和会议工具.

Whilst not able to work at the moment my most likely avenue of return is still to my previous job. There is a very limited amount of work I do from home as the primary client insists that you work from their premises and more importantly use their equipment. I do not think I could use any custom equipment (beyond accessories, such as a trackball) even if I offered to pay for it myself, we as a team are greatly removed from Corporate IT Admin. So at best I can be expecting an i3/i5 laptop with 8GB of RAM. I probably could swag/provide an external monitor in addition to the laptop display. We do have admin access to the OS but I cannot be putting native Linux on it or anything, and even if I could I need the corporate communication and meeting tools from Windows.

(已编辑).腰椎间盘突出导致双腿神经痛.我再次从身体的角度研究这个问题,但出于这个问题的目的,我将假设我目前的状况是永久性的,这排除了踏板或以其他方式使用我的腿来输入角色.

(edited in). Herniated lumbar disc causing nerve pain in both legs. Again I am working on this from a physical standpoint but for the purpose of this question will assume my current condition is permanent, which precludes pedals or other use of my legs for the purpose of character entry.

所以我不能使用鼠标或触摸板(不确定球).不能使用修饰键,并且需要在 Win 7 公司笔记本电脑上工作,尽管具有管理员访问权限,但业务/销售经理可能会获得这种类型的笔记本电脑.主要工作类型是 LAMP 堆栈,但也有其他技术,如 Java、C++ 和 Python.

So I cannot use a mouse or touch pad (not sure about ball). Cannot use modifier keys and need to work on a Win 7 corporate laptop of the same kind that a business/sales manager might get, albeit with admin access. Primary type of work is LAMP stack although there are also other technologies such as Java, C++ and Python.

我看过 Tavis Rudd 的语音编码(此处:http://www.youtube.com/watch?v=8SkdfdXWYaI) 这将是在家中的一种选择,但不是开放式客户办公室的选择.这个想法确实让我想到,我的解决方案可能在于使用带有重新映射绑定的 emacs 之类的东西.我可能会得到一台足够强大的笔记本电脑,可以在 Oracle VM 或其他东西下运行极简的 X11 桌面(比如 Fluxbox).或者我可以安装和使用 Cygwin.

I had seen the voice coding by Tavis Rudd (here: http://www.youtube.com/watch?v=8SkdfdXWYaI) which would be an option from home but not the open plan client office. The idea did get me thinking however that my solution may lie in the use of something like emacs with remapped bindings. I probably could get a laptop powerful enough to run a minimalist X11 desktop (say maybe Fluxbox) under Oracle VM or something. Or I could install and use Cygwin.

我从未使用过完整的 IDE,但也从未使用过除琐碎任务之外的 emacs.我去上班会是 scite 和一些 xterm shell.它可能有所改进,但我发现我们得到的笔记本电脑上的 IDE 有点迟钝.我知道 IDE 和 scite 将是可扩展的,后者在 lua 下,但我怀疑 emacs 将在现有的多种语言扩展以及诸如存储库工作或对服务器的其他访问等(其中大部分将是 *nix).

I never did use full blown IDEs, but never used emacs beyond trivial tasks either. My go to for work would be scite and some xterm shells. It may have improved but I found IDEs a bit sluggish on the laptops we got. I know the IDEs as well as scite will be extensible, the latter under lua, but I suspect emacs will offer more in terms of existing extensions for multiple languages as well as task such as repository work or other access to servers etc (most of which would be *nix).

我仍在进行身体检查和康复工作,但目前我假设这些限制仍然存在.这里最有帮助的是那些更熟悉 emacs 或 IDE(例如 Eclipse 或 NetBeans)的人的一些指示,表明该软件适合我的目的,然后我开始学习使用它,我必须这样做(无偿) 在返回工作岗位之前,需要至少达到我之前所在位置的 80%.

I am still working on physical investigation and rehab but for the moment am assuming these limitations are here to stay. What would be most helpful here is some indication from those more familiar with emacs or IDEs such as Eclipse or NetBeans, that the software is fit for my purpose, before I go and start learning to use it, which I would have to do (unpaid) before returning to work, needing to hit the ground at least 80% of where I was before.

这样我就可以尝试避开我没有预见到的任何砖墙.我的第一反应是学习 emacs",因为无论如何这在我的领域都是一项有用的技能,尽管如果有其他更适合主要目标的东西,我会这样做.

Such that I can try and avoid any brick walls down the line which I did not foresee. My gut reaction as the first thing to be doing is "learn emacs" as it would be a useful skill in my area regardless, although if there is something else more suited to the primary goal I would do that.

非常感谢.

推荐答案

默认的 Emacs 绑定大量使用修饰键;但是,默认值有替代方案,无需您手动自定义所有绑定.

Default Emacs bindings make heavy use of modifier keys; however there are alternatives to the defaults, without necessarily requiring you to manually customise all the bindings.

Vi/Vim 可能是一个不错的替代编辑器选择,因为不是使用修饰键来启动命令,而是在插入模式"(您键入的键产生文本)和命令模式"(在您键入的键会触发编辑命令),因此您很少(如果有的话?)需要同时按住多个键.

Vi/Vim may be a good choice of alternative editor, as rather than using modifier keys to initiate commands, you switch between "insert mode" (in which the keys you type produce text), and "command mode" (in which the keys you type trigger editing commands), so you would rarely (if ever?) need to hold multiple keys at the same time.

不过,Emacs 可能仍然是可取的.Emacs 的一个优势是它可以与许多其他进程和应用程序集成的程度,从而为您提供一个熟悉的键盘界面,用于除编辑文本之外的许多活动.我会说在 Unix 下的情况比在 Windows 下的情况要多得多,但我相信还是有好处的.

Emacs may still be desirable, though. An advantage of Emacs is the degree to which it can integrate with many other processes and applications, thus giving you a familiar keyboard interface to many activities besides editing text. I would say this is far more the case under Unix than Windows, but I'm sure there are still benefits.

在 Emacs 中也有使用 Vi 方法的方法,这可能是一个更好的答案.我知道 evil-mode 包(用于 Emacs 的可扩展 vi 层")是在 Emacs 中使用 vi 样式绑定的最全面的方法.

There are also ways to use the Vi approach within Emacs, which may be an even better answer. I understand that the evil-mode package ("extensible vi layer for Emacs") is the most comprehensive approach to using vi-style bindings in Emacs.

我自己不是 vi 用户,所以我会让其他人提供详细信息.

I'm not a vi user myself, so I'll leave it to others to provide details.

保持模态编辑方法,God Mode 为您提供类似 Vi 的模态分离,但使用熟悉的 Emacs 键序列(按照链接更好地理解该语句).作者说:您会发现这种模式来得非常自然,而且您已经知道如何运行现有的 Emacs 命令."

Keeping with the modal editing approach, God Mode gives you Vi-like modal separation, but using the familiar Emacs key sequences (follow the link to make better sense of that statement). The author says "You'll find that this mode comes surprisingly naturally and that you already know how to run your existing Emacs commands."

撇开模态编辑不谈,诸如 ErgoEmacs 之类的软件包努力提供比默认值更友好的键绑定,并且可能很有用.

Leaving modal editing aside, packages such as ErgoEmacs endeavour to provide friendlier keybindings than the defaults, and may be useful.

我读到的一种自定义方法(由 Xah Lee 使用)是将某些键用作前缀绑定,通过它可以在没有修饰符的情况下访问其他所有内容.这对于某些类型的绑定来说很简单,但在其他情况下需要努力(可能在大多数情况下,实际上).

A custom approach I read about (used by Xah Lee) was to dedicate certain keys as prefix bindings through which everything else could be accessed without modifiers. This is simple for some kinds of binding, and requires effort in other cases (probably in most cases, realistically).

例如,许多绑定以前缀 C-x (ctrl+x) 开头,但是可以将整个前缀分配给不需要修饰符的序列.例如: (global-set-key (kbd "<f6> x") 'Control-X-prefix) 将允许您键入 F6 后跟 x 而不是在键入 x 时按住 Ctrl.

For example, a great many bindings start with the prefix C-x (ctrl+x), but it's possible to assign that entire prefix to a sequence which doesn't require a modifier. e.g.: (global-set-key (kbd "<f6> x") 'Control-X-prefix) would allow you to type F6 followed by x instead of holding down Ctrl while typing x.

其他类似的重新分配不会那么简单,但都是可能的.

Other similar reassignments will not be so trivial, but it's all possible.

更一般地(因此可能更有用;当然定制更少),您可以使用自定义(因此可能无修饰符)序列发送任何修改后的键.

More generally (and so perhaps more usefully; certainly with less customisation) you can send any modified key using custom (and thus potentially modifier-free) sequences.

event-apply-*-modifier 函数(用于 shiftcontrolmeta(你的 Altkey)、superhyper、& alt(不是你的 Alt 键))是做到这一点的诀窍.调用时,它们会从用户处读取下一个键,然后将所需的修饰符应用于该键,将结果传递给它,就好像它是使用真正的修饰键键入的一样.

The event-apply-*-modifier functions (for shift, control, meta (your Alt key), super, hyper, & alt (not your Alt key)) are the trick to doing this. When called, they read the next key from the user, and then apply the required modifier to that key, passing the result through as if it had been typed using the real modifier key.

以下将使用小键盘上的数字键来表示所有修饰键.然后你可以输入序列 CxCb 作为 1x1b.

The following would use the number keys on the keypad to represent all the modifier keys. You could then type the sequence C-xC-b as 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)

您需要做一些额外的工作才能为一个键组合多个修饰符,但这是可能的.

You'd need to do some extra work to enable you to combine multiple modifiers for a single key, but it's possible.

关于修改和翻译输入事件的 elisp 手册页也相关:
C-hig (elisp) 事件模组 RET

The elisp manual page on Modifying and Translating Input Events is also relevant:
C-hig (elisp) Event Mod RET

一种完全不同的方法是使用脚踏板(或其他一些输入设备;例如:http://xkeys.com/xkeys.php) 使您能够按预期使用修饰键,而根本不需要重新绑定任何东西.

A completely different approach would be to use foot pedals (or some other input device; e.g.: http://xkeys.com/xkeys.php) to enable you to use the modifier keys as intended, without the need to rebind anything at all.

这篇关于具有 RSI 类型症状(无法使用的手指)的代码创建/编辑器的软件要求的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆