Jon*_*rdy 78 language-agnostic qwerty dvorak keyboard-layout
我经常听到抱怨为了简洁而大量使用符号的编程语言,最明显的是C和C++(我不会触及APL),很难打字,因为它们需要经常使用shift键.一两年前,我自己厌倦了,下载了微软的键盘布局创建器,对我的布局进行了一些修改,并且没有一次回头看.速度差异惊人; 通过这些简单的更改,我能够以大约30%的速度输入C++代码,当然这取决于毛茸茸的程度; 最重要的是,我在普通运行文本中的打字速度不会受到影响.
我的问题是:编程中存在哪些备用键盘布局已经普及,其中任何一种仍然在现代使用,你个人使用任何改变的布局,我的布局如何进一步优化?
我对标准QWERTY布局进行了以下更改.(我不使用Dvorak,但有一个程序员Dvorak布局值得一提.)
我怀疑这最后可能是最有争议的,因为它通过要求使用shift来键入常见的收缩来干扰运行文本.这种布局显着提高了我在C++,C,Java和Perl中的打字速度,并且在LISP和Python中有所增加.
Yac*_*oby 31
我仍然认为打字速度不是项目完成所需时间的主要因素.如果是,那就有一个大问题(编码周节省了我们的计划时间).
关于你的问题,我更喜欢使用标准布局,因为这意味着当出现标准键盘布局时,我不必花费前10分钟看起来很愚蠢.
您建议的一些替换,例如带有特殊字符的顶行不会产生一点差异,因为另一方面外侧手指应该同时移动.
恕我直言,有助于上面链接布局的一件事是只使用键盘快捷键.建议使用Vim和Emacs.它可以更快地移动文本.
小智 14
我会用以下方式处理你的问题.任务是组织键盘,以便最小化给定文本的击键和手部移动.
迈向可能解决方案的步骤.制作一个程序:
现在手动或通过编写程序以下列方式重新定义您的布局.将最常用的符号放在靠近强手的中心位置.第二个符号位于中央位置的弱手.第三个符号可以追溯到你强有力的手......等等.然后,您逐渐从手的中心位置移动到键盘的更"远"区域.当所有键盘都已满时,您将继续分配键的过程,但这次按下Shift键.另一个区别是,当Shift关闭时,您不会为每个符号旋转强弱手.首先按下shift键,您将填充键盘上的中心位置,然后移动到更远的位置.
当您为新布局再次执行步骤3以查看布局如何改进时.
您可能必须随身携带键盘.在光明的一面,没有人会触摸你的电脑.它会让你看起来像专业版.
最后,不要忘记分享您的发现.
小智 12
我现在正在使用Colemak布局的变体,其中包含大量符号变化:
没有SHIFT:
` - {} []; <>()_ =
qwfpgjluy*/#\
arstdhneio'
zxcvbkm.!
使用SHIFT:
~1 2 3 4 5 6 7 8 9 0 + +
QWFPGJLYY @ ^ $ |
ARSTDHNEIO"
ZXCVBKM%:?
也许我会恢复/键......
但这不是基于任何合理的研究,我也喜欢看到一个布局优化(优化包括手工改造等东西,也包括ZXCV保存......)和基于源代码的语料库,因为所有这些布局似乎只为散文而优化.例如,'f'是C中非常常见的字母(if,for).
更新:我目前正在使用
` - {} [] @ <>()_ =
qwkrgyulp*; #
asftdhneio'\
\ zxcvbjm./
使用SHIFT:
~1 2 3 4 5 6 7 8 9 0 ^ +
QWKRGYULP&!$
ASFTDHNEIO"|
| ZXCVBJM%:?
这是基于从Carpalx获取的6键交换部分优化,保留了通常的剪切/复制/粘贴/撤消快捷方式,并进行了修改,以便更好地访问常用的编程字符.
Tgw*_*man 10
制作一个简单的键盘记录器,然后计算每个键被按下的次数.运行一两天,然后将输出保存到文本文件.每隔一段时间做一次.使用什么布局并不重要,因为您只是看到哪些键被最多使用.
如果你想做一个好的布局,你不能害怕摆脱常态.我建议将前11个键放在主行,然后将前11个键作为顶行(将返回键上方的2个键保留为最少使用的键),然后将第3个前11个键作为最下面的行.现在应该剩下4把钥匙了.把它们放在 - =和]\slots中.恭喜!您现在已经为您的目的制作了出色的键盘布局!= d
总的来说,我认为拥有一个好的文本编辑器并知道如何使用它比尝试提高你的打字速度更好.能够记录和重放宏有时是救生员,并且选择快捷方式分配的代码片段可以很方便,因为通常会对可以转换为库的内容施加语言限制.
更一般地说,我认为真正的生产力提升者都是关于知识......
FWIW,我并不是声称对所有这些都很强大.我一直过于偏向于自己解决问题,并且过于强烈地倾向于重新发明轮子和宏伟的建筑方案.
无论如何,我只是怀疑改变和学习键盘布局所花费的时间会分散更重要的问题.