如何为程序员计算理想的键盘布局?


8

我正在考虑为编程创建新的键盘布局。现在我主要使用HTML,JavaScript / jQuery / CoffeeScript,CSS / LESS / SASS进行编程,尽管几年后我可能会涉足Shell脚本和RegEx,也许几年后还会涉足LUA,C ++和Java。我想对钥匙的位置有科学的证明。我确实有一些想法/要求,有些是我自己发明的,有些是从别人那里获得或衍生的:

  • 几乎所有按键都可能会重新排列
    • RETURNLeft SHIFTLeft CONTROL空格键Tab都需要停留,但是其他所有选项(包括数字,符号和移动键)都可以移动
    • 可能是最佳的,以休假ZXCV&perhhaps 小号留在原地,由于共同的撤消/剪切/复制/粘贴/保存习惯:)
    • DELETE键可能会移动到CAPS LOCK所在的位置:)
    • 不太可能使匹配的方括号(){} [] <>彼此相邻;见下文
  • IMHO 计数密钥使用情况的唯一准确方法是通过密钥记录而不是文件的密钥计数:
    • 许多“编程”是发送电子邮件,发布到论坛,推特,错误报告,网上冲浪等。
    • 我相信键盘的大部分用法都是“运动”。在字段之间切换,向下翻页,移动光标等。文件输出未捕获这些内容
    • 许多编辑器使用自动完成和宏,因此关闭分隔符:)}]>的键入方式可能不像打开程序那么频繁,因此只有键记录和不分析文件才能正确。

所以我的问题是:

  1. 什么是安全的免费/开源软件键盘记录程序,除非您自己发送单独的文件,否则它们不会上传文件?我宁愿不收集登录名和密码,不仅出于安全性考虑,而且出于收集安全性的考虑,因为这样做可能会引起我的分析恕我直言。
  2. 客户端可以使用哪些程序来消化单键和配对键计数?或如何最好地建立一个?
  3. 在哪里最好找到志愿者提供帮助?

迄今为止最好的研究:http : //www.michaelcapewell.com/projects/keyboard/layout_capewell.htm

http://viralintrospection.wordpress.com/category/technology/keyboard-layouts/

和维基百科:Keyboard_layout#Non-QWERTY_keyboards_for_Latin_scripts

TIA!


一个有趣的问题,但让我提出一个自己的问题:我们最好放弃几十年来一直用于完全不同的东西的交错巧克力棒布局吗?
伊格纳西奥·巴斯克斯

您是否意味着Ignacio要以$ 300USD的价格切换到全新的布局,例如Kinesis的Contoured键盘?不,只需重新映射现有廉价键盘中的键,您就可以在普通商店中以5-20美元的价格找到它们。
tomByrer 2012年

如果您习惯于标准QWERTY(或其他)键盘,则仅使用它而不是学习新的布局可能会更有效率。特别是如果您定期使用其他没有自定义布局的计算机。
鲍勃

1
顺便说一句,为了使人们能够收到答复,您需要使用@tomByrer对其进行ping操作!
slhck

2
我怀疑最好的办法是给<>{}[](以及当前需要移位的其他键)自己的键-我并不是真正的程序员,但是我知道编写bash脚本时最讨厌的就是这个。
evilsoup

Answers:


2

使用类似WhatPulse的程序来记录击中了哪些键以及击中了多少次。

在FreeNode IRC网络上询问如何将关键频率集中在一起之后,用户使我想到了这一点:

  1. 获取您的文本(例如程序),然后复制它们。
  2. 前往http://type.trmnl.org/
  3. 在按钮下方,请务必取消选中“粘贴时剪贴板内容自动启动”
  4. 然后,将程序粘贴到文本框中。
  5. 按Cntrl + Shift + K,将打开一个控制台。
  6. 键入count_digraphs(),然后按Enter。

结果如下所示:"ar" 7 17 10 "ra"这意味着“ ar”被按下7次,“ ra”被按下10次,而“ ar”和“ ra”一起被按下17次


“额外选项:保留击键频率的记录-在WhatPulse 1.7版中引入,它使您可以跟踪每个按键被按下的次数。” whatpulse.org/wiki/Program_Settings_Tab_2亲爱的,谢谢@ekaj!我也要研究它!
tomByrer

我认为这是迄今为止更具侵入性的键盘记录程序的最佳解决方案。跨平台和XML / HTML输出是一种祝福。唯一缺少的是对bigram / digram(两个相邻元素的序列)的支持。推理:在英语,不仅是“他”和“日”共同在一起,而且在很多编程语言(如C ++,JavaScript中,CSS)“ ;进入 ”是经常打字在一起。因此,如果有WhatPulse克隆允许这样做,那将是最佳选择。同时,我将在他们的论坛上发布建议。
tomByrer 2012年

1
@tomBryer试图为您更新答案,希望对您有所帮助。.请注意,我只能在FF中使用它,而不能在IE或Chrome中使用它。
cutrightjm 2012年

是的,这在某些方面很有帮助!源代码:“'很遗憾,此应用无法在IE中运行,'。” IE有时具有怪异的JS语法。
tomByrer 2012年

4

编辑器中用于移动的键通常最适合QWERTY的有效使用,因此,如果您更改键布局并希望所有内容都达到最佳位置,则肯定需要重新映射它们。例如在Vim中,使用HJKL按钮是出于QWERTY的原因,在修改了键映射后,很可能需要将其重新映射到相同的位置。

我的意思是,它不会帮助您跟踪移动和编辑键并将其用作新布局的基础,因为它们很容易重新配置(在任何编辑器中都值得一试,并且由于我们正在谈论程序员的知识,布局,我们很可能在谈论Vim或Emacs),不应干扰文字键的位置,并且已经进行了优化(再次:我们不是在谈论记事本)。

您正在尝试解决效率低下的问题,尤其是对于程序员 imho而言。仅了解更多有关工具的知识就会产生更大的影响(再次:可能是Vim / Emacs)。您会发现,在编程时实际花费在编写字符上的时间越来越少,而在自动完成,自动标记,自动缩进,快速的函数定义查找等上花费的时间却越来越多(但效率更高)。为此,已经进行了调整以提高效率,而大幅度提高速度只是出于熟悉。因此,我认为,不同的键盘布局对生产力具有相当的破坏作用,因为您已经有很多多年的QWERTY锻炼。如果在QWERTY上花费与在Dvorak上切换布局的人相同的分析培训时间,他们还将注意到速度的提高。速度来自明确的训练。

如果您是一名撰稿人/翻译者/作者/等等,实际上是在花一些时间来处理按键的字面意义的人,那么不同的布局可能会有所帮助。对于程序员而言,最好的秘诀通常是至少获得英文键盘布局,因为编程习惯用法已经由这些习惯及其键位置(在我的本地键布局@$[]{}~上都位于AltGr的后面,这是次优的)影响了形状。

tldr: Dvorak / Colemak / [下一个“自切成薄片以来最好的东西”](可以说)仅对那些以特定语言(通常是英语)输入大量文字的人解决了一个问题。为了编程,需要的按键都没有受到同样的限制文字语言,因此它已经为它的目的进行了优化(这只是“写一样快,你可以”;它建立更多的逻辑操作见Vim)。我相信,在大多数情况下,花费在学习替代布局上的时间以及一次又一次肯定会一次又一次地出现的困惑绝对不值得付出努力(不仅仅是您自己的困惑;坐在您上次使用的同一终端的其他人会抛出该错误)事情),包括程序员的事情在内。


感谢@ Daniel-Andersson对Vim的见解;权衡某些编辑器允许重新定义移动键很有帮助!我确实必须了解有关我的工具的更多信息。但是,我使用许多工具进行了大量编辑。在线编辑器和文本框:论坛(如此处;),要点,jsFiddle,GMail,Facebook,Twitter(@不能成为非班次关闭键吗?)...以及其他编辑器,如Inkscape,SynthMaker,Live,等等。我想通过键盘映射尽可能地统一我的快捷方式,然后通过app-configs将其
更进一步
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.