首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >一种理想的编程键盘布局

一种理想的编程键盘布局
EN

Stack Overflow用户
提问于 2010-02-21 23:57:07
回答 6查看 76.3K关注 0票数 93

我经常听到抱怨说,为了简洁而大量使用符号的编程语言,尤其是C和C++ (我不会接触APL),很难输入,因为它们需要频繁使用Shift键。一两年前,我自己也厌倦了它,下载了微软的Keyboard Layout Creator,对我的布局做了一些修改,再也没有回头看过。速度的差异是惊人的;通过这些简单的更改,我能够输入C++代码大约快30%,当然,这取决于它有多多毛;最好的是,我在普通运行文本中的输入速度不会受到影响。

我的问题是:编程已经有了什么替代的键盘布局,这些布局已经变得流行起来,它们中的任何一个仍然在现代使用中,你个人是否使用任何改变的布局,以及如何进一步优化我的布局?

我对标准的QWERTY布局做了以下更改。(我不使用Dvorak,但有一个programmer Dvorak布局值得一提。)

由于长的或重复的文字数字通常用带有代字号的命名反引号替换,因为在许多语言中很少使用反引号,但是在带有下划线的

  • Swap 中,析构函数很常见,因为下划线在方括号的identifiers;
  • Swap花括号中很常见,因为块比下标更常见;and
  • Swap带单引号的双引号,因为字符串比字符字面量更常见。

我怀疑最后这一点可能是最有争议的,因为它通过使用shift来输入常见的缩写,从而最大程度地干扰了文本的运行。这种布局极大地提高了我在C++、C、Java和PERL语言中的输入速度,并在一定程度上提高了LISP和Python语言的输入速度。

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2010-02-22 00:00:38

我仍然认为,打字速度不是项目完成所需时间的主要因素。如果是这样,那就有一个很大的问题(几周的编码为我们节省了几个小时的计划)。

关于你的问题,我更喜欢使用标准布局,因为这意味着当我看到标准键盘布局时,我不必在前10分钟看起来很愚蠢。

你建议的一些替换,例如,顶行的特殊字符不会有任何区别,因为另一只手的外指应该同时移动到移位。

我有一件事可以帮助链接布局,那就是只使用键盘快捷键。推荐使用Vim和Emacs。它使得移动文本的速度更快。

票数 31
EN

Stack Overflow用户

发布于 2011-01-31 10:02:01

我会用下面的方式来回答你的问题。该任务是以最小化给定文本的击键和手部移动的方式来组织键盘。

走向可能的解决方案的步骤。编写一个程序,该程序:

  1. 获取一个包含源代码的文本文件。(越大越好,根据不同的sources!)
  2. Counts,每个符号的使用频率(它在text).
  3. (optional)中的存在基于步骤2:程序为每个符号生成击键计数加上手必须离开中心位置的距离)。这样你就可以衡量你的键盘布局有多有效。

现在,手动或通过编写程序,以以下方式重新定义您的布局。将最常用的符号放在离你的强手更近的中心位置。第二个符号是你在中间位置的弱手。第三个符号返回到强hand...and,依此类推。然后,您逐渐从手的中心位置移动到键盘上更“远”的区域。当所有键盘都已满时,您可以继续分配按键的过程,但这次是按下Shift键。另一个不同之处在于,当按下Shift时,您不会为每个符号旋转强手和弱手。首先按下shift键,您将填充键盘上的中心位置,然后移动到更远的位置。

完成所有这些操作后,再次对新布局执行步骤3,以查看该布局是如何改进的。

你可能需要随身携带你的键盘。好的一面是没人会碰你的电脑。它会让你看起来像个职业选手。

最后,别忘了分享你的发现。

票数 21
EN

Stack Overflow用户

发布于 2011-07-13 18:51:38

我正在尝试Colemak布局的一个变体,其中包含大量的符号变化:

不使用SHIFT:

`-{};<>()_=

Q w f p g j l u y*/#\

A r s t d h n e i o‘

Z x c v b k m,.好了!

使用SHIFT键:

~1 2 3 4 5 6 7 8 9 0&+

Q W F P G J L U Y@^$|

A R S T D H N E I O“

Z X C V B K M%:?

也许我会恢复/密钥..。

但这并不是基于任何合理的研究,我也希望看到布局优化(优化包括手动修改等内容,也包括ZXCV保存,...)使用基于源码的语料库,因为所有这些布局似乎都只针对散文进行了优化。例如,'f‘在C中是一个非常常见的字母(if,for)。

更新:我目前正在使用

`-{}@<>()_=

Q w k r g y u l p*;#

A s f t d h n e i o‘\

\z x c v b j m,./

使用SHIFT键:

~1 2 3 4 5 6 7 8 9 0^+

Q W K R G Y U L P&!$

A S F T D H N E I O“|

|Z X C V B J M%:?

这是基于Carpalx的6键交换部分优化,保留了通常的剪切/复制/粘贴/撤消快捷方式,并对其进行了修改,以便更好地访问通常的编程字符。

票数 16
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2306423

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档