2018年3月9日晚,我和哲豆二筆的作者張先生閑聊時,他提到能不能同時按下兩個鍵,當成普通方案里的一個鍵,以實現(xiàn)三碼定長。
這引起了我的興趣,怎樣不使用并擊軟件或硬件,實現(xiàn)并擊的輸入方式。
第一個拿來試手的是“12鍵二筆純形6碼6重并擊方案”,這個方案制作起來最為簡單,只要在原二筆的碼表上做些替換工作即可。
這類只通過編碼技術實現(xiàn)的并擊輸入就是編碼并擊。
并擊可以提速
并擊輸入其實和傳統(tǒng)單擊輸入方式擊鍵速度上相差無幾。最主要的原因是人的反應力有個知覺的閥限,按完一個鍵后,你的大腦要用一定的時間接受觸覺信號再下達下一個要按的鍵的命令,這是影響擊鍵的主要原因——人類的反應速度有限,即使是條件反射。
一個反應周期的時間最快100ms,所以很多人的擊鍵無法突破10,除非熟練到大腦下達一個指令,一條指令可能讓手指按多次(比如五筆高手雨兒的“彈指”),或者是可以忽視觸覺反饋(這樣的人才需要太久太久的訓練)。
您可以這樣做個實驗,在跟打器里閉著眼睛,胡亂打一通,你的擊鍵速度會上到20,雖然正確率為零。這時候你就明白,影響提高擊鍵速度的不是手指不靈活,而是大腦跟不上。更別提預讀、生僻字的拆分這類更復雜的思維。
可惜人的大腦無法升級硬件,實際上人的大腦已經(jīng)是自然界里最優(yōu)的設計了。那么必須思考如何在一個反應周期里多做一點事情。這也是并擊能提速的原因。
因為并擊的組合比單擊的按鍵一般要多,所以在一次擊鍵過程里,并擊能輸入更多信息,通過字根編碼或者音形等等技術,可以實現(xiàn)相同的時間下,并擊能打出更多字詞;或者并擊能用更少的編碼鍵就能實現(xiàn)單擊方案相同的性能。
編碼并擊相比于軟件并擊,理論上性能比不上。第一是編碼并擊只能是2指并擊或3指并擊,而軟件并擊可以更多手指同時按鍵。第二是,編碼并擊方案給每個并擊組合賦予了含義,比如聲音、字形、筆畫、字根等,然而這些信息不能均勻分配給每個漢字,使得信息量平均不如信息上相對更亂序的軟件并擊(你也可以向092五筆看齊,做出信息分布接近理想平均的高效復雜方案)。
編碼并擊的專用詞
下列詞語是我在制作方案時候想到的,認為使用這些詞語能簡化并擊領域的交流:
基本
- 并擊:同時按下多個按鍵的擊鍵動作。
- 單擊:一次只按一個鍵的擊鍵動作。
- 軟件并擊:利用專門的并擊軟件,掛接在單擊方案上,以實現(xiàn)并擊功能。
- 并擊軟件:當用戶同時按下多個按鍵再松開按鍵后(clickup),映射出兩個有順序的字符列表,這兩個字符做為常規(guī)方案的輸入字符。例如:小仙并擊,琴碼。
- 并擊平臺:能實現(xiàn)并擊的輸入法平臺,代表是小小和rime。
- 速錄機:可以理解為“并擊硬件”,知名的有:飛耀,亞偉。
- 編碼并擊:不用并擊軟件,僅僅通過增加編碼以模糊并擊時幾個鍵的先后順序。可以在大多數(shù)輸入法平臺工作。
- 擊鍵速度:一秒內(nèi)能按過多少按鍵。并擊按多個按鍵算。在跟打器里一般簡稱為“擊鍵”。
- 并擊擊鍵速度:一秒內(nèi)按過的按鍵數(shù)量。并擊組合算作一個按鍵。
擊鍵組合
- 并擊組合:一次并擊行為時,所并擊的多個按鍵構(gòu)成的集合。
- 11并擊:左手一個鍵,右手一個鍵的并擊組合。同理,20并擊是左手兩個鍵、右手不按鍵的并擊組合;21并擊是左手兩個鍵、右手一個鍵的并擊組合。
- 左手并擊/右手并擊:只使用左手的并擊組合,20并擊、30并擊屬于左手并擊。同理,右手并擊是只用右手的并擊組合。
- 雙手并擊:同時用到左右手的并擊組合。如11并擊、21并擊、22并擊等。
- 2指并擊:簡稱2并,用到兩個手指(無所謂左右手)的并擊組合。如11并擊,20并擊等。同理還有3指并擊、4指并擊。
- 單手2指并擊:并擊時只用到一只手的2指并擊,包括20并擊和02并擊。同理還有“單手3并擊”包括30并擊和03并擊。簡稱單2并擊、單3并擊。
- 單并混擊:方案里既有并擊又有單擊。
- 單2混擊:方案里既有2指并擊,又有單擊。請與“單2并擊”區(qū)分,兩個“單”的含義不同。
- 23混擊:方案里既有2指并擊,又有3指并擊。通常一個23混擊的詞條里,只有一次3指并擊,而有兩次2指并擊。請與“23并擊”區(qū)分,23的含義不同。
編碼設計
示范用的編:左手qwe,右手789
- 一簡:只包含一碼的簡碼字詞。
- 編組:編碼時,根據(jù)并擊組合將編碼劃分多個組(只存在觀念里,并不用標注在碼表中),在每個編組里排列組合,模糊并擊組合的先后順序。
- 模糊:動詞,為了實現(xiàn)編碼并擊,將一個編組里的編碼,排列組合成多個詞條。例如:11并擊q7w8e9的模糊詞條包括7qw8e9、q78we9、q7w89e、q78w9e、7qw89e、7q8we9、7q8w9e共7個。
- 基本順序,一個編組里,每個編碼從前向后對應鍵盤上的按鍵是從左向右。例如11并擊的q7w8e9,單2并擊的qw78qw
- 模糊詞條:碼表中模糊作用的詞條,它的順序稱為“模糊順序”。
- 碼長:詞條的編碼部分全部編碼的數(shù)量,并擊組合算作多個編碼。
- 編組碼長:也可以叫做“并擊碼長”,在碼長里,將一個并擊組合算作一個編碼。
模糊數(shù)量
設:
- 模糊詞條的數(shù)量為 m
- 一個編組內(nèi)的所有可能順序數(shù)量為 z
- 方案的編組碼長為 c
- 一個編組內(nèi)含有的編碼數(shù)量為 y
那么


(這里減去的1是基本順序不是模糊順序。)
所以
例如:上文提到的11并擊q7w8e9,模糊詞條數(shù)量是

例如:3指并擊qwe789的模糊順序數(shù)量有:

出于減少碼表規(guī)模目的,建議編碼并擊方案設計者盡量只做2指并擊。
用python編程時,可以使用itertools模塊生成每個編組內(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)) 這個語句可以讓結(jié)果直接排列到一起
# end=' ' 可以讓默認的輸出后換行變?yōu)橐粋€空格
建議其他開發(fā)者
如果您也想制作編碼并擊的方案,我根據(jù)我的經(jīng)驗給您這些建議,您也可以無視它們:
- 所有的鍵位組合設計時候請考慮手感。特別是單手并擊,盡量不要用小指,也不要用到同指跨排的組合。
- 盡量設計26鍵及以內(nèi)的方案,這是為了盡量兼容各類平臺,比如:win10內(nèi)置的微軟五筆(但是它只支持4碼長),QQ五筆,主流的拼音輸入法等等。
- 控制在最多6鍵并擊,因為一般的薄膜鍵盤,并擊7鍵會出現(xiàn)按鍵沖突。
- 請盡量避免無理碼
- 上述的專用詞并不是規(guī)范,只要不影響工作,您可以按您自己的習慣命名。
YY鳥 2018年3月14日