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

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

我正在考虑为编程创建一个新的键盘布局。现在我主要用 HTML、JavaScript/jQuery/CoffeeScript、CSS/LESS/SASS 编程,尽管我可能很快会涉足 shell 脚本和 RegEx,也许几年后会用到 LUA、C++ 和 Java。我希望有科学证据来证明按键的位置。我确实有一些想法/要求,有些是我自己发明的,有些是从别人那里借鉴或衍生出来的:

  • 几乎所有键都可以重新排列
    • 返回左移左 CONTROL 键空格键,&标签需要保留,但所有其他键(包括数字、符号和移动键)都可以移动
    • 离开可能是最佳选择陳小貴也许s由于常见的撤消/剪切/复制/粘贴/保存习惯而留​​在原地:)
    • 删除关键可能被转移到哪里大写锁定是 :)
    • 不太可能将 (){}[]<> 等匹配的括号并排放置;见下文
  • 我认为唯一准确的方法通过键盘记录来统计密钥的使用情况,不是文件的关键计数:
    • 大部分“编程”是发送电子邮件、在论坛上发帖、发推特、报告错误、浏览网页等。
    • 我相信大部分键盘使用都是“移动”;在字段之间切换、向下翻页、移动光标等。这些不会被文件输出捕获
    • 许多编辑器使用自动完成和宏,因此关闭分隔符:)}]> 可能不会像开启符那样经常被输入,因此只有键盘记录而不是解析文件才是准确的。

我的问题是:

  1. 什么是安全的免费/开源软件键盘记录器,除非您亲自发送单独的文件,否则不会上传文件?我宁愿不收集登录名和密码,不仅出于安全考虑,还因为这会破坏我的分析。
  2. 哪些程序可以在客户端使用来消化单个和成对的密钥计数?或者如何最好地构建一个?
  3. 哪里最适合找到志愿者来帮忙?

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

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

& 维基百科:键盘布局#拉丁文的非 QWERTY 键盘

短暂性失眠!

答案1

使用类似的程序什么脉搏记录按下了哪些键以及按下了多少次。

在 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次

答案2

编辑器中的移动键通常会进行调整,以尽可能地适应 QWERTY 键盘的使用效率,因此,如果您更改了键布局并希望最佳的您要努力实现所有事物的放置。例如,在 Vim 中,HJKL 按钮与 QWERTY 一起使用是有原因的,在修改键映射后,很可能需要重新映射回相同的位置。

我的意思是,跟踪移动和编辑键并使用它作为新布局的基础对你没有多大帮助,因为它们易于重新配置(在任何值得称道的编辑器中,由于我们正在谈论程序员的布局,我们最有可能谈论的是 Vim 或 Emacs),不应该干扰文字键的位置并且已经进行了优化(再次强调:我们不是在谈论记事本)。

你正在尝试解决一个问题,这是一个提高生产力的低效方法, 尤其对于程序员来说,**恕我直言**。简单地学习更多关于工具的知识(再次强调:可能是 Vim/Emacs)会更有效果。你会发现编程时花在实际写字符上的时间越来越少,而花在自动完成、自动标记、自动缩进、快速函数定义查找等方面的时间更多(但效率更高)。实现这一切的关键是已经适应提高效率,而速度的大幅提升则来自于熟悉。因此,我认为不同的键盘布局相当破坏生产力,因为你已经有很多QWERTY 练习。如果在 QWERTY 上花费的分析训练时间与切换布局的人在 Dvorak 上花费的时间相同,他们也会注意到速度的提升。速度来自明确的训练。

如果你是一名撰稿人/翻译/作家/等等,一个真正花时间与文字按键的含义,那么不同的布局可能会有所帮助。对于程序员来说,最好的建议通常是至少使用英语键盘布局,因为编程习惯用法是由这些键盘布局及其按键位置形成的(在我的本地按键布局中,@$[]{}~所有按键都在 AltGr 后面,这是相当不理想的)。

总结:Dvorak/Colemak/[下一个“自切片面包以来最好的东西”](可以说)只为那些输入大量流动文本的人解决了问题使用特定语言(通常是英语)。对于编程来说,所需的键不受与文字语言相同的限制,因此它已经针对其目的进行了优化(即不是只是“尽可能快地写”;它更多地建立在逻辑操作上。参见 Vim)。我相信,在大多数情况下,花在学习替代布局上的时间以及一次又一次发生的困惑绝对不值得付出努力(不仅仅是你自己的困惑;坐在你上次使用的同一个终端前的其他人会向你扔东西),包括程序员的困惑。

相关内容