[TOC] ## 前言 使用 CC1 與我的鍵盤佈局的話,有幾種和弦可以用。當它們使用相同的按鍵組合時,可能會產生衝突。這篇文章中會有各種和弦的說明和我預防衝突的方法。 ## 注音和弦(聲韻並擊) 因為任何中文字的注音有至多一個聲母、韻母和介音,所以使用者可以在一般鍵盤上同時輸入一個中文字的聲母、韻母和介音。在 CC1 上使用我的鍵盤佈局的話也可以做到。 所有可能的注音和弦可以在一些中文字典中查到,例如[這個字典網站的注音索引](https://www.zdic.net/zd/zy/)。這個在我想要新增不與注音和弦衝突的 CC1 和弦時很有用。 :::warning 我有[另一篇有關注音和弦的文章](/@andy23512/SJHlrjf6R)。 ::: ## CC1 和弦 :::warning 我有把我的 CC1 和弦列在[這個筆記](/@andy23512/rJS6r9-J0)。 ::: ### CC1 英文和弦 當注音和弦和 CC1 上的和弦使用同一個按鍵組合時,它們會互相衝突。為了保留 CC1 的和弦功能並防止衝突,我刪除了所有 CC1 內建的和弦,並只加入不會跟注音和弦衝突的和弦。 在我的[天弦 41 鍵 V5](/@andy23512/ByRaeCBAT#V5(最新版)) 下,`e+x -> exit` 就是一個不衝突的 CC1 和弦,因為 `e` 和 `x` 對應的注音符號為 `ㄑ` 和 `ㄡ`,然後 `ㄑㄡ` 這個注音組合沒有對應的中文字。 ### CC1 中文和弦 (注音輸入法下) 保留 CC1 的和弦功能創造了一個新的可能,就是使用 CC1 和弦打中文。我使 CC1 將一個不是注音和弦的和弦轉換成能打出一個中文詞的一連串的按鍵。 舉例來說,這是 `ㄑ+ㄜ -> 企鵝` 和弦。 ![未命名](https://hackmd.io/_uploads/SkBHwn2_T.gif) 然後這是其運作的序列圖。 ```mermaid sequenceDiagram 使用者->>CC1: e + 4\n(ㄑ+ㄜ) CC1->>天弦41鍵 V5 : eas4n 天弦41鍵 V5->>注音輸入法: ㄑㄧˋㄜˊ 注音輸入法->>輸出: 企鵝 ``` 所以我在 CC1 上加了 `e + 4 -> eas4n[KSC_00]` 和弦。這個在我的天弦 41 鍵 V5 上,即對應到注音的 `ㄑ+ㄜ -> ㄑㄧˋㄜˊ[KSC_00]`,輸出的字詞 `企鵝` 是由注音輸入法的詞庫決定。 (`[KSC_00]`,也就是在裝置管理工具上的 `No Key Pressed` 動作,是用來取消 CC1 和弦的自動字尾加空白的功能。這個空白會開啟不需要的選字視窗,所以我需要取消掉那個空白。) #### 限制 這種和弦有一些限制存在。 除了以上提到的衝突問題以外,一個難解的問題就是無法在這種和弦的輸入組合中使用超過一個的聲母、韻母或介音。舉例來說, `ㄋ+ㄏ` 有兩個聲母,所以不能夠使用。這是因為注音輸入法的緩衝區只會保留至多一個聲母、韻母或介音, CC1 產生的 Backspace 鍵擊數目將會比緩衝區中的符號數還多, 而造成前面的文字被刪除。 聲調鍵也因為有相同的問題,沒辦法作為這種和弦的輸入。 ### CC1 日文和弦 (羅馬字輸入法下) 雖然我沒有需要打很多日文,我還是嘗試地做了一個 CC1 日文和弦。跟 CC1 中文和弦一樣,我設定了一個會輸出「能打出一個日文詞的一連串的按鍵」的和弦。 舉例來說,底下是 `s+h -> すし(寿司)` 和弦。 (跟 CC1 中文和弦一樣,自動字尾空白也要被取消) ![c3c22ac745ad2320](https://hackmd.io/_uploads/HkPjpxeCa.gif) 然後這是其運作的序列圖。 ```mermaid sequenceDiagram 使用者->>CC1: s + h CC1->>日文輸入法: susi 日文輸入法->>輸出: 寿司 (或「すし」的同音詞) ``` #### 限制 日文輸入法的字數縮減的特性會與 CC1 的和弦功能發生問題,因為 CC1 產生的 Backspace 數量可能會與在緩衝區中的字數不同,而造成前面的文字被刪除。 舉例來說,使用和弦 `n+u` 可能輸出 ぬ(nu)、うん(un) 或 運(un)。即根據按鍵的順序和輸入法的字詞優先度,在緩衝區中的輸出會隨機是一個或兩個文字。然後 CC1 會為了 `n+u` 和弦產生兩個 Backspace 鍵擊。所以如果輸出是一個文字時,如 ぬ 或 運 時,一個前面的文字會被刪除。 所以這種和弦的限制是只能選擇「任意排列都不會有字數縮減問題」的按鍵組合。在羅馬字輸入法下會比較容易選擇(即不要使用母音鍵)。但是在假名輸入法下就會極為複雜,因為有太多假名組合可以被縮減為漢字,所以不建議在假名輸入法下使用此和弦。