【qwerty布局】

qwerty布局大家应该都很熟悉了,全世界最普及的键盘布局。

截止到去年接触并使用dvorak布局之前,我使用了十几年qwerty布局,在http://speedtest.10fastfingers.com/测试的最高CPM(每分钟击键数)为475。

相信阅读本文的读者中,有99%以上都在使用qwerty布局。

热区图

本热区图是使用http://www.patrick-wied.at/projects/heatmap-keyboard/对apache2的license.txt(36k)进行分析的结果,下同

优点

1、普及率和兼容性接近100%

2、有史以来的各种软件的快捷键都默认为此布局设计

3、最常用的快捷键(^a, ^s, ^c, ^v, ^x, ^z, ^w)都可用左手完成

缺点

1、高频键大多不在中排,都需要移动手指才能按到,导致需要大量的手指移动

2、高频键左右分布不均衡,左手负担比右手重

3、经常出现单手连续击键(尤其是左手)的情况,容易疲劳也容易出错

4、常用标点符号;/'都要用小指输入,容易疲劳也容易出错

【dvorak布局】

这个布局知道的人就很少了,和qwerty布局相比,它将元音字母aoeui移到左边,将最常用的辅音字母移到右边,同时调整了一下标点符号的键位。

自从去年接触到它后,我用了一个月的时间适应,然后就抛弃qwerty布局了。不仅输入速度得到了提升(在http://speedtest.10fastfingers.com/测试的最高CPM为535),而且长时间coding也很少出现疲劳的情况了。

热区图

使用

Windows:在语言设置里添加“美国英语-Dvorak”,推荐使用http://code.google.com/p/dvorak-qwerty/

Linux:在终端输入loadkeys dvorak(GUI请在键盘设置里找),推荐使用http://code.google.com/p/dvorak-qwerty/

Mac:在语言设置里选择“Dvorak-标准”

更多系统下启用Dvorak布局请见:http://dvorak.mwbrooks.com/support.html

优点

1、将高频键都分布在中排,大大降低手指移动距离

2、尽可能使左右手交替击键,均衡负担

3、布局优雅,精心设计了右手负责区域的键位,使辅音字母组合(如th nt gh wh rn)输入非常顺手

4、将常用的标点符号' , . ; = - 移到更舒服的位置,输入更方便(对程序员来说巨爽)。

缺点

1、布局变化过大,几乎所有的字母和标点符号都改变了,上手困难

2、到qwerty布局的电脑上丧失盲打能力

3、别人很难再使用你的电脑了,可以再装一个qwerty布局切换

4、本来单手可以操作的快捷键要两手操作。不过MacOS下有天然的“Dvorak-标准”布局,Windows和Linux下可以用这个http://code.google.com/p/dvorak-qwerty/来使用原有键位的快捷键,但是还有一些BUG(不支持ALT快捷键、有个别字母如s w v z在开启Capslock时输入仍是小写等)

5、部分跳过键盘布局直接取键盘码的软件仍然是qwerty布局,比如QQ拼音和搜狗输入法(经测试紫光和谷歌输入法可以正常使用,只是可惜了我的QQ同步词库),还有QQ和部分网银的密码输入框(解决办法是看着键盘按qwerty布局输入),还有一些远程桌面软件,还有一些游戏(比如魔兽,这点挺好,DOTA无障碍了,哈哈)

6、高频键 r 和 i 仍需要移动才能按到,而 u 和 h 不是很高频的键却放在了本位(不需要移动就能按到)

【dvorak programmer布局】

估计某个程序员发现用dvorak布局很爽,就将之变得更加极限。于是出来这么一个布局。

这个布局大胆的用常用符号替换了数字,同时考虑到在程序中;比"出现得更频繁,调换了两者之间的位置。

热区图

优点

1、包括上述dvorak键盘的所有缺点

2、优化了程序中常用符号如$ ; ( ) { } [ ] =等,用来coding巨爽

缺点

1、包括上述dvorak布局的所有缺点

2、输入数字只能按住shift进行-_-

【colemak布局】

这个布局比dvorak更激进一些,通过热区图可以看到,8个高频键完美地安排在了本位。

现在正在尝试适应这个布局,一段时间后再写篇文章分析与dvorak相比哪个布局更好。

坚持使用colemak数日后,实在无法接受别扭的标点输入进行coding,只好放弃colemak了,也许对普通人来说更适合一些。

热区图

使用

Windows:http://colemak.com/wiki/index.php?title=Windows

Linux:http://colemak.com/wiki/index.php?title=Unix

Mac:http://colemak.com/wiki/index.php?title=Mac

更多资料请见:http://colemak.com/

优点

1、高频键真正做到了完美分布,手指移动距离更小

2、qwzxcvbm以及标点符号键都没有移动,而且除了e和p外,字母键都在原来的手控制之下,更容易上手

3、常用的快捷键(^a, ^c, ^v, ^x, ^z, ^w)仍能正常使用

4、万年不用的capslock被换成了高频键backspace,巨爽

5、有资料详尽的官方网站http://colemak.com/,甚至针对各种打字练习软件设计了练习包

缺点

1、键分布没有逻辑,不如dvorak优雅

2、没有优化常用标点符号

说说qwerty、dvorak、colemak三种键盘布局的更多相关文章

  1. tkinter的三种几何布局管理类

    1.pack() 主要采用块的方式组织子组件 如下: import tkinter root=tkinter.Tk() #创建窗口对象 label=tkinter.Label(root,text='h ...

  2. CSS实现导航条Tab的三种方法

    前面的话   导航条Tab在页面中非常常见,本文说详细介绍CSS实现导航条Tab的三种方法 布局   根据上图所示,先规定几个定义,上图的模块整体叫做导航,由导航标题和导航内容组成.要实现上图所示的布 ...

  3. CSS实现导航条Tab切换的三种方法

    前面的话   导航条Tab在页面中非常常见,本文说详细介绍CSS实现导航条Tab的三种方法 布局   根据上图所示,先规定几个定义,上图的模块整体叫做导航,由导航标题和导航内容组成.要实现上图所示的布 ...

  4. gnome设置dvorak键盘布局

    若桌面环境为gnome,设置Dvorak键盘程序员布局很简单.系统设置 -> 键盘 -> 布局设置 -> 点击"+" ->选择"英语(适合程序员的 ...

  5. Java中获取键盘输入值的三种方法

    Java中获取键盘输入值的三种方法     Java程序开发过程中,需要从键盘获取输入值是常有的事,但Java它偏偏就没有像c语言给我们提供的scanf(),C++给我们提供的cin()获取键盘输入值 ...

  6. iOS 三种收起键盘的方法

    - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typica ...

  7. 【读书笔记】iOS-开发技巧-三种收起键盘的方法

    - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typica ...

  8. Android App监听软键盘按键的三种方式

    前言:   我们在android手机上面有时候会遇到监听手机软键盘按键的时候,例如:我们在浏览器输入url完毕后可以点击软键盘右下角的“GO”按键加载url页面:在点击搜索框的时候,点击右下角的sea ...

  9. 键盘-App监听软键盘按键的三种方式

    前言:   我们在android手机上面有时候会遇到监听手机软键盘按键的时候,例如:我们在浏览器输入url完毕后可以点击软键盘右下角的“GO”按键加载url页面:在点击搜索框的时候,点击右下角的sea ...

随机推荐

  1. Python使用Zero-Copy和Buffer Protocol实现高性能编程

    无论你程序是做什么的,它经常都需要处理大量的数据.这些数据大部分表现形式为strings(字符串).然而,当你对字符串大批量的拷贝,切片和修改操作时是相当低效的.为什么? 让我们假设一个读取二进制数据 ...

  2. springMVC form表单提交多个对象集合--使用ajax提交--前台json格式数据封装方法

    (function ($) { $.fn.serializeJson = function () { var jsonData1 = {}; var serializeArray = this.ser ...

  3. mybatis深入理解(一)之 # 与 $ 区别以及 sql 预编译

    mybatis 中使用 sqlMap 进行 sql 查询时,经常需要动态传递参数,例如我们需要根据用户的姓名来筛选用户时,sql 如下: select * from user where name = ...

  4. Testlink安装后配置修改

    1.1. config.inc.php 1.1.1. 日志路径配置 /** *  @var string Path to store logs - *for security reasons (see ...

  5. 032 Longest Valid Parentheses 最长有效括号

    给一个只包含 '(' 和 ')' 的字符串,找出最长的有效(正确关闭)括号子串的长度.对于 "(()",最长有效括号子串为 "()" ,它的长度是 2.另一个例 ...

  6. 小小粉丝度度熊 二分答案 + two pointer

    http://acm.hdu.edu.cn/showproblem.php?pid=6119 发现自己的two pointer能力超弱. 这题是合并时间后,二分答案. 可以知道对于每个时间区间,合法的 ...

  7. Hive项目实战:用Hive分析“余额宝”躺着赚大钱背后的逻辑

    一.项目背景 前两年,支付宝推出的“余额宝”赚尽无数人的眼球,同时也吸引的大量的小额资金进入.“余额宝”把用户的散钱利息提高到了年化收益率4.0%左右,比起银行活期存储存款0.3%左右高出太多了,也正 ...

  8. <s:property>的用法

    1,访问Action值栈中的普通属性: <s:property value="attrName"/> 2,访问Action值栈中的对象属性(要有get set方法):  ...

  9. SpringBoot | 第十九章:web应用开发之WebSocket

    前言 web开发也讲解了三章了,这章节开始讲解关于与前端通信相关知识.实现一个在线聊天室类似的功能或者后端推送消息到前端,在没有WebSocket时,读大学那伙还有接触过DWR(Direct Web ...

  10. HTML5 应用缓存和常规的 HTML 浏览器缓存有何差别?

    HTML5 的应用缓存最关键的就是支持离线应用,可获取少数或者全部网站内容,包括 HTML.CSS.图像和 JavaScript 脚本并存在本地.该特性加速了网站的性能,可通过如下方式实现: < ...