SpaceShift 在实际使用中的问题

几个月之前,我读到了一篇关于提高键盘上键位利用率的文章(虽然网址现在已经找不到 了)。上面提到可以将空格键和 shift 合体来使用。在单独按下空格的时候是空格键,空格 和其他功能键(比如字母和数字之类的)一起按的时候会起到 shift 键的功能。这样的话可 以用拇指来轻松地输入大写字母,原先的 shift 键也可以改成退格键之类的,来进一步减少 手指在键盘上移动的距离。在昨天,我终于下定决心在自己的电脑上实验这种用法了,然而 我很快发现这种做法看起来不错,但实用性很差。

使用这种策略的时候,程序必须判断输入者是想要空格键还是 shift 键的功能,其判断算 法(简略)如下:

  • 空格键被按下时,程序不会实际进行输入,而是等待其他的按键被按下
  • 如果按下了其他按键,程序向操作系统发出 shift+此按键 的事件
  • 如果在松开空格之前没有按下其他按键,程序向操作系统发出 按下空格 的事件

可见,如果采用这种算法,则只能在“松开”空格键的时候打出空格。假设我们要输入词组 abc def 并且已经输入了单词 abc ,当打字很快时,我们经常会在松开空格之前便按 下 d 键,这样输入的词组就变成了abcDef 。而普通键位的 空格 字符是在刚刚按下 空格之后输入的,不会出现此问题。

因此这种算法必须适当地降低打字速度才能减少错误率,这违背了使用它的初衷。 SpaceShift 的策略在一开始就是错误的。

这里 有一些在 windows 上用的 ahk 脚本,提供给想要尝试这种策略的读者。这些脚本都 采用了我上文所述的算法。或许也可能有一些别的算法可以解决我之前提到的问题(虽然我 觉得比较悬),到那时候我再继续研究吧。

本作品采用 署名-相同方式共享 4.0 国际 进行许可。欢迎转载、使用、重新发布,但务必保留文章署名 “不科学的科学君” (Liu233w) 与博客链接: https://liu233w.github.io ,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请 与我联系

加载评论框需要翻墙