技术头条 - 一个快速在微博传播文章的方式     搜索本站
您现在的位置首页 --> 发现 --> 关于热键和键盘布局

关于热键和键盘布局

浏览:1807次  出处信息

    先从热键说起吧,最开始沉迷的是 Quake 3。大部分的参数(原始版本大概有三四百个,一些 MOD 诸如 OSP 将参数数目扩充到了 1K+)是需要自己改配置文件的。虽然参数系统不是图灵完备的,但能做的事情也还算多了,比方可以让右键的瞄准视角符合 CS 风格,这并不是一个参数说让你选择哪种风格,而是需要有个临时变量来保证按一下开瞄准,同时改变视角的度数,再按一下关上。还有一个很重要的参数是鼠标灵敏度,对于不同的武器热键需要不同的灵敏度,一个真正的 Quaker 会花很多时间去微调每把武器的灵敏度,以达到一个最佳状态,这是起码的要求。而分享各自的 config 就像现在晒 github 一样流行。

    让我开始注意到热键的重要性,是当时有人举了个例子,假设行走是用的 ASDF(也有SDFE的,同理),一般会在最近的两个键 Q 和 E 上绑着非常重要的功能,很有可能就是武器切换,但是,当你斜跳的时候,你没法让三个手指都在一侧,比方说你按 A、W、空格三个键跳起时,你是没法按 Q 的,如果你要换武器,通常都是 E。据说有顶级选手之间可以通过钻研对手的 config 而在比赛中获得更多的优势――只是据说,但我相信那些疯子能做到。

    在 WOW 里,由于技能系统过于复杂,我花费了非常多的时间来调整热键和界面。记得暴雪的某人说,有无数人提议做游戏主机版的 WOW,可他们做不到,如果有谁做到了,准能发大财。我想其中的关键因素就是操控,虽然我定义了一半以的字母键,外加一些组合键盘,还有罗技 MX518 鼠标的两个拇指键和滚轮也有所安排,在 RAID 时还是觉得键位紧张,而不时不让某些不常用的操作靠鼠标点界面来解决。而且,有些按键是绑定的脚本,而非游戏本身的单一功能。

    打造一套完全个人定制的热键是历来的习惯,并且这是很有趣的事情。只可惜直到最近,我才想到 Linux 的高度可定制。不过在此之前还是想先说下键盘本身。

    根源是我得知有一种叫 HHKB(Happy Hacking Keyboard)的键盘,有着非常怪异的布局:

    

    当然,看到后我还是迅速接受了这种布局:只有主键盘区 / 去掉了 F1 - F12 / 数字 1 左边的 ` 改为 Esc / 大小写切换改为 Ctrl 键。很明显这些改动非常适合 Emacs/Vim 用户,同时也引发了我对键盘布局的思考。很明显 Ctrl 就应该是在那个位置上的,却一直熟视无睹,而 ` 键在 WOW 里我一直给设成非常重要的热键,却没有想过在游戏之外也应该重用这个键。

    很明显,更改这些键并不需要特制的昂贵硬件来实现,我没有去研究 Windows 下如何设置(大概 AutoHotKey 可以做到?),问了下刘涛,起码在 Linux 下是很简单的,直接用 Xmodmap 就可以,比方说在其 man 里,就已经说明了如何对调 Ctrl 和 Caps Lock:

    remove Lock = Caps_Lock

    remove Control = Control_L

    keysym Control_L = Caps_Lock

    keysym Caps_Lock = Control_L

    add Lock = Caps_Lock

    add Control = Control_L

    只要写到 ~/.Xmodmap 里就可以自动生效了。

    而对于 ` 的问题,我没有挪成 Esc,而是额外绑了个多媒体键 XF86Search,作为呼叫 Tilda 的热键(一个仿 Quake 控制台的 Terminal,类似的软件还有很多,如 Guake、Yakuake、Mac 下的 Visor),如果要输入原本的 `,要用右 Alt 键。同时并不妨碍 Shift + ` 来输入 ~。另外,要去掉系统里默认的针对 XF86Search 的热键。最终配置是这两行:

    keycode  49 = XF86Search asciitilde

    keycode 108 = grave asciitilde

    另外,在获知这些内容的时候,正在寻莫一个趁手的机械键盘,而乔伦和刘涛两三年前就在用 Cherry 原厂了。入门级产品里有乔伦推荐的 PLU 87,加之新蛋上看到的 Flico 87 和 RealForce 87,这几款顾名思义都是没有数字键区的,但最终还是找了自己理想的键盘:Noppoo Mini。

    

    虽然想不通一个游戏外设品牌为什么会做出这么仿 HHKB 的形状来讨好 Geek,甚至在右上角还有个一个专门的键来切换 Ctrl / Caps Lock,看到一些国外的测评里,也拿这款键盘作为一个廉价版 HHKB 看待(主要的价格差别在于,HHKB 是电容键盘,相比机械键盘要高档不少)。但相比 HHKB,多了上面和右边的两排键显然更适合我等凡人。不过对我个人而言,右侧的两个键 Page Up / Page Down,加上 Fn 组合键后才是 Home / End,我希望对调一下,默认是 Home / End,那么 Xmodmap 里可以这么设

    keycode 112 = Home

    keycode 117 = End

    keycode 110 = Prior

    keycode 115 = Next

    这么做还是有必要的,比方说网页的文字框里你没法像 shell 下那样用 Ctrl A / Ctrl D

    键盘入手一个多月来,除了几乎每天都要感叹几次机械键盘打字爽外,对 Ctrl 的适应性超快,大概入手一两天就习以为常了,就好像 Ctrl 键从来都是在那个位置上一样,直到有一天在 Wiki 上看到,Vi 的页面上甚至有一张专门的 ADM3A 键盘布局来解释 Esc 键和 HJKL 移动的问题,这也顺便解释了 Ctrl 的问题。此外,还搜到一篇《Vi/Emacs & 键盘史》,列举了很多照片来说明 Ctrl 的问题(也靠里面的图片确认了 RMS 真的在用 HHKB),可想而知,现在的 Ctrl / Caps Lock 的布局的问题是 104 键盘推广的结果,其更适合文秘而非程序员。我是主张所有程序员都应该对调这两个键。

    Update in 2011.12.05

    我就觉得好像忘了点什么,注意看 Apple ][ 的 wiki 里的照片,所有键盘都是 Ctrl 在左中哦

建议继续学习:

  1. 敲击最多的键和编程语言语法    (阅读:5557)
  2. 机械键盘的一些知识    (阅读:4638)
  3. Vim 键盘图中文版    (阅读:3780)
  4. 在 JavaScript 中监听 IME 键盘输入事件    (阅读:2272)
  5. 触屏键盘设计准则(内附绝密小抄)【译】    (阅读:1299)
QQ技术交流群:445447336,欢迎加入!
扫一扫订阅我的微信号:IT技术博客大学习
© 2009 - 2024 by blogread.cn 微博:@IT技术博客大学习

京ICP备15002552号-1