2018年3月9日晚兽叮,我和哲豆二筆的作者張先生閑聊時(shí)萄喳,他提到能不能同時(shí)按下兩個(gè)鍵卒稳,當(dāng)成普通方案里的一個(gè)鍵,以實(shí)現(xiàn)三碼定長(zhǎng)他巨。
這引起了我的興趣充坑,怎樣不使用并擊軟件或硬件减江,實(shí)現(xiàn)并擊的輸入方式。
第一個(gè)拿來(lái)試手的是“12鍵二筆純形6碼6重并擊方案”捻爷,這個(gè)方案制作起來(lái)最為簡(jiǎn)單辈灼,只要在原二筆的碼表上做些替換工作即可。
這類只通過(guò)編碼技術(shù)實(shí)現(xiàn)的并擊輸入就是編碼并擊也榄。
并擊可以提速
并擊輸入其實(shí)和傳統(tǒng)單擊輸入方式擊鍵速度上相差無(wú)幾巡莹。最主要的原因是人的反應(yīng)力有個(gè)知覺(jué)的閥限,按完一個(gè)鍵后手蝎,你的大腦要用一定的時(shí)間接受觸覺(jué)信號(hào)再下達(dá)下一個(gè)要按的鍵的命令榕莺,這是影響擊鍵的主要原因——人類的反應(yīng)速度有限,即使是條件反射棵介。
一個(gè)反應(yīng)周期的時(shí)間最快100ms,所以很多人的擊鍵無(wú)法突破10吧史,除非熟練到大腦下達(dá)一個(gè)指令邮辽,一條指令可能讓手指按多次(比如五筆高手雨兒的“彈指”),或者是可以忽視觸覺(jué)反饋(這樣的人才需要太久太久的訓(xùn)練)贸营。
您可以這樣做個(gè)實(shí)驗(yàn)吨述,在跟打器里閉著眼睛,胡亂打一通钞脂,你的擊鍵速度會(huì)上到20揣云,雖然正確率為零。這時(shí)候你就明白冰啃,影響提高擊鍵速度的不是手指不靈活邓夕,而是大腦跟不上。更別提預(yù)讀阎毅、生僻字的拆分這類更復(fù)雜的思維焚刚。
可惜人的大腦無(wú)法升級(jí)硬件,實(shí)際上人的大腦已經(jīng)是自然界里最優(yōu)的設(shè)計(jì)了扇调。那么必須思考如何在一個(gè)反應(yīng)周期里多做一點(diǎn)事情矿咕。這也是并擊能提速的原因。
因?yàn)椴舻慕M合比單擊的按鍵一般要多狼钮,所以在一次擊鍵過(guò)程里碳柱,并擊能輸入更多信息,通過(guò)字根編碼或者音形等等技術(shù)熬芜,可以實(shí)現(xiàn)相同的時(shí)間下莲镣,并擊能打出更多字詞;或者并擊能用更少的編碼鍵就能實(shí)現(xiàn)單擊方案相同的性能猛蔽。
編碼并擊相比于軟件并擊剥悟,理論上性能比不上灵寺。第一是編碼并擊只能是2指并擊或3指并擊,而軟件并擊可以更多手指同時(shí)按鍵区岗。第二是略板,編碼并擊方案給每個(gè)并擊組合賦予了含義,比如聲音慈缔、字形叮称、筆畫(huà)、字根等藐鹤,然而這些信息不能均勻分配給每個(gè)漢字瓤檐,使得信息量平均不如信息上相對(duì)更亂序的軟件并擊(你也可以向092五筆看齊,做出信息分布接近理想平均的高效復(fù)雜方案)娱节。
編碼并擊的專用詞
下列詞語(yǔ)是我在制作方案時(shí)候想到的挠蛉,認(rèn)為使用這些詞語(yǔ)能簡(jiǎn)化并擊領(lǐng)域的交流:
基本
- 并擊:同時(shí)按下多個(gè)按鍵的擊鍵動(dòng)作。
- 單擊:一次只按一個(gè)鍵的擊鍵動(dòng)作肄满。
- 軟件并擊:利用專門的并擊軟件谴古,掛接在單擊方案上,以實(shí)現(xiàn)并擊功能稠歉。
- 并擊軟件:當(dāng)用戶同時(shí)按下多個(gè)按鍵再松開(kāi)按鍵后(clickup)掰担,映射出兩個(gè)有順序的字符列表,這兩個(gè)字符做為常規(guī)方案的輸入字符怒炸。例如:小仙并擊带饱,琴碼。
- 并擊平臺(tái):能實(shí)現(xiàn)并擊的輸入法平臺(tái)阅羹,代表是小小和rime勺疼。
- 速錄機(jī):可以理解為“并擊硬件”,知名的有:飛耀灯蝴,亞偉恢口。
- 編碼并擊:不用并擊軟件,僅僅通過(guò)增加編碼以模糊并擊時(shí)幾個(gè)鍵的先后順序穷躁「纾可以在大多數(shù)輸入法平臺(tái)工作。
- 擊鍵速度:一秒內(nèi)能按過(guò)多少按鍵问潭。并擊按多個(gè)按鍵算猿诸。在跟打器里一般簡(jiǎn)稱為“擊鍵”。
- 并擊擊鍵速度:一秒內(nèi)按過(guò)的按鍵數(shù)量狡忙。并擊組合算作一個(gè)按鍵梳虽。
擊鍵組合
- 并擊組合:一次并擊行為時(shí),所并擊的多個(gè)按鍵構(gòu)成的集合灾茁。
- 11并擊:左手一個(gè)鍵窜觉,右手一個(gè)鍵的并擊組合谷炸。同理,20并擊是左手兩個(gè)鍵禀挫、右手不按鍵的并擊組合旬陡;21并擊是左手兩個(gè)鍵、右手一個(gè)鍵的并擊組合语婴。
- 左手并擊/右手并擊:只使用左手的并擊組合描孟,20并擊、30并擊屬于左手并擊砰左。同理匿醒,右手并擊是只用右手的并擊組合。
- 雙手并擊:同時(shí)用到左右手的并擊組合。如11并擊、21并擊糊昙、22并擊等。
- 2指并擊:簡(jiǎn)稱2并蜜另,用到兩個(gè)手指(無(wú)所謂左右手)的并擊組合。如11并擊嫡意,20并擊等。同理還有3指并擊捣辆、4指并擊蔬螟。
- 單手2指并擊:并擊時(shí)只用到一只手的2指并擊,包括20并擊和02并擊汽畴。同理還有“單手3并擊”包括30并擊和03并擊旧巾。簡(jiǎn)稱單2并擊、單3并擊忍些。
- 單并混擊:方案里既有并擊又有單擊鲁猩。
- 單2混擊:方案里既有2指并擊,又有單擊罢坝。請(qǐng)與“單2并擊”區(qū)分廓握,兩個(gè)“單”的含義不同。
- 23混擊:方案里既有2指并擊嘁酿,又有3指并擊隙券。通常一個(gè)23混擊的詞條里,只有一次3指并擊闹司,而有兩次2指并擊娱仔。請(qǐng)與“23并擊”區(qū)分,23的含義不同游桩。
編碼設(shè)計(jì)
示范用的編:左手qwe牲迫,右手789
- 一簡(jiǎn):只包含一碼的簡(jiǎn)碼字詞耐朴。
- 編組:編碼時(shí),根據(jù)并擊組合將編碼劃分多個(gè)組(只存在觀念里盹憎,并不用標(biāo)注在碼表中)筛峭,在每個(gè)編組里排列組合,模糊并擊組合的先后順序脚乡。
- 模糊:動(dòng)詞蜒滩,為了實(shí)現(xiàn)編碼并擊,將一個(gè)編組里的編碼奶稠,排列組合成多個(gè)詞條俯艰。例如:11并擊q7w8e9的模糊詞條包括7qw8e9、q78we9锌订、q7w89e竹握、q78w9e、7qw89e辆飘、7q8we9啦辐、7q8w9e共7個(gè)。
- 基本順序蜈项,一個(gè)編組里芹关,每個(gè)編碼從前向后對(duì)應(yīng)鍵盤上的按鍵是從左向右。例如11并擊的q7w8e9紧卒,單2并擊的qw78qw
- 模糊詞條:碼表中模糊作用的詞條侥衬,它的順序稱為“模糊順序”。
- 碼長(zhǎng):詞條的編碼部分全部編碼的數(shù)量跑芳,并擊組合算作多個(gè)編碼轴总。
- 編組碼長(zhǎng):也可以叫做“并擊碼長(zhǎng)”,在碼長(zhǎng)里博个,將一個(gè)并擊組合算作一個(gè)編碼怀樟。
模糊數(shù)量
設(shè):
- 模糊詞條的數(shù)量為 m
- 一個(gè)編組內(nèi)的所有可能順序數(shù)量為 z
- 方案的編組碼長(zhǎng)為 c
- 一個(gè)編組內(nèi)含有的編碼數(shù)量為 y
那么
(這里減去的1是基本順序不是模糊順序。)
所以例如:上文提到的11并擊q7w8e9盆佣,模糊詞條數(shù)量是
例如:3指并擊qwe789的模糊順序數(shù)量有:
出于減少碼表規(guī)模目的往堡,建議編碼并擊方案設(shè)計(jì)者盡量只做2指并擊。
用python編程時(shí)罪塔,可以使用itertools模塊生成每個(gè)編組內(nèi)的所有排序:
import itertools
for i in itertools.permutations('qwe', 3):
print (''.join(i),end=' ')
# 輸出結(jié)果:
# qwe qew wqe weq eqw ewq
# print (”.join(i)) 這個(gè)語(yǔ)句可以讓結(jié)果直接排列到一起
# end=' ' 可以讓默認(rèn)的輸出后換行變?yōu)橐粋€(gè)空格
建議其他開(kāi)發(fā)者
如果您也想制作編碼并擊的方案投蝉,我根據(jù)我的經(jīng)驗(yàn)給您這些建議,您也可以無(wú)視它們:
- 所有的鍵位組合設(shè)計(jì)時(shí)候請(qǐng)考慮手感征堪。特別是單手并擊瘩缆,盡量不要用小指,也不要用到同指跨排的組合佃蚜。
- 盡量設(shè)計(jì)26鍵及以內(nèi)的方案庸娱,這是為了盡量兼容各類平臺(tái)着绊,比如:win10內(nèi)置的微軟五筆(但是它只支持4碼長(zhǎng)),QQ五筆熟尉,主流的拼音輸入法等等归露。
- 控制在最多6鍵并擊,因?yàn)橐话愕谋∧ゆI盤斤儿,并擊7鍵會(huì)出現(xiàn)按鍵沖突剧包。
- 請(qǐng)盡量避免無(wú)理碼
- 上述的專用詞并不是規(guī)范,只要不影響工作往果,您可以按您自己的習(xí)慣命名疆液。
YY鳥(niǎo) 2018年3月14日