本專案旨在將傳統的行列 30 輸入法(使用 30 個按鍵)簡化並轉換為行列 12 輸入法。這非常適合用於數字小鍵盤、手持裝置、遙控器或虛擬小鍵盤等輸入場景。
本專案提供兩種鍵位映射版本:
- 標準版:僅使用 12 個按鍵(
0-9、↑//、↓/*),適合一般鍵盤或模擬器。 - LIME 版:僅使用 12 個按鍵(
0-9、↑/,、↓/.),專為 LIME 輸入法設計,可避免符號衝突並便於行動裝置輸入。
專案中提供了對應的 Python 轉換腳本,能將現有的行列 30 .cin 格式對照表,自動轉換為行列 12 的 .cin 格式對照表。
行列 12 輸入法的核心思想是保留行列輸入法的「第一碼、最後碼」與「字根碼(前三後一)」邏輯,但將原本分佈於英文鍵盤三橫列的 30 個按鍵,對應到 10 個數字鍵加上「上(↑)」與「下(↓)」兩個輔助鍵:
- 中排鍵 (基本鍵):直接對應數字鍵
1到0。 - 上排鍵:對應數字鍵加上 上 (
↑),在標準版使用/,在 LIME 版使用,。 - 下排鍵:對應數字鍵加上 下 (
↓),在標準版使用*,在 LIME 版使用.。
| 行列 30 原始按鍵 | 對應行列 12 鍵碼 (標準版) | 對應行列 12 鍵碼 (LIME 版) | 說明 |
|---|---|---|---|
| Q | 1/ (即 1↑) |
1, (即 1↑) |
第一行上排 |
| A | 1 |
1 |
第一行中排 (基本鍵) |
| Z | 1* (即 1↓) |
1. (即 1↓) |
第一行下排 |
| W | 2/ (即 2↑) |
2, (即 2↑) |
第二行上排 |
| S | 2 |
2 |
第二行中排 (基本鍵) |
| X | 2* (即 2↓) |
2. (即 2↓) |
第二行下排 |
| E | 3/ (即 3↑) |
3, (即 3↑) |
第三行上排 |
| D | 3 |
3 |
第三行中排 (基本鍵) |
| C | 3* (即 3↓) |
3. (即 3↓) |
第三行下排 |
| R | 4/ (即 4↑) |
4, (即 4↑) |
第四行上排 |
| F | 4 |
4 |
第四行中排 (基本鍵) |
| V | 4* (即 4↓) |
4. (即 4↓) |
第四行下排 |
| T | 5/ (即 5↑) |
5, (即 5↑) |
第五行上排 |
| G | 5 |
5 |
第五行中排 (基本鍵) |
| B | 5* (即 5↓) |
5. (即 5↓) |
第五行下排 |
| Y | 6/ (即 6↑) |
6, (即 6↑) |
第六行上排 |
| H | 6 |
6 |
第六行中排 (基本鍵) |
| N | 6* (即 6↓) |
6. (即 6↓) |
第六行下排 |
| U | 7/ (即 7↑) |
7, (即 7↑) |
第七行上排 |
| J | 7 |
7 |
第七行中排 (基本鍵) |
| M | 7* (即 7↓) |
7. (即 7↓) |
第七行下排 |
| I | 8/ (即 8↑) |
8, (即 8↑) |
第八行上排 |
| K | 8 |
8 |
第八行中排 (基本鍵) |
| , | 8* (即 8↓) |
8. (即 8↓) |
第八行下排 |
| O | 9/ (即 9↑) |
9, (即 9↑) |
第九行上排 |
| L | 9 |
9 |
第九行中排 (基本鍵) |
| . | 9* (即 9↓) |
9. (即 9↓) |
第九行下排 |
| P | 0/ (即 0↑) |
0, (即 0↑) |
第十行上排 |
| ; | 0 |
0 |
第十行中排 (基本鍵) |
| / | 0* (即 0↓) |
0. (即 0↓) |
第十行下排 |
專案內包含兩個轉換腳本:
- convert_ar30_to_ar12.py:標準版轉換腳本。
- convert_ar30_to_ar12_lime.py:LIME 版轉換腳本。
轉換腳本執行以下轉換邏輯:
- 自動修改檔案標頭:
- 標準版:將
%ename array30改為%ename array12,%cname 行列30改為%cname 行列12。 - LIME 版:將
%ename array30改為%ename array12lime,%cname 行列30改為%cname 行列12LIME。
- 標準版:將
- 重定義按鍵名稱:
- 標準版:將
%keyname區間內的按鍵重設為1-0、/(↑)、*(↓)。 - LIME 版:將
%keyname區間內的按鍵重設為1-0、,(↑)、.(↓)。
- 標準版:將
- 移除不相容設定:
- 移除過往行列 30 常見的快碼定義
%quick。 - 清理如
%endkey 1234567890、%space_style 2等多餘配置。
- 移除過往行列 30 常見的快碼定義
- 轉換字詞對照表:
- 將
%chardef區間中所有字詞的行列30按鍵組合,依據上述鍵位對照表轉換成 12 鍵組合。 - 過濾掉原本單個數字
1到0的基本鍵對應,避免按鍵重疊衝突。
- 將
請確保你的系統已安裝 Python 3。
python convert_ar30_to_ar12.py <輸入的行列30_cin檔案> <輸出的行列12_cin檔案>範例:
- 轉換標準字表:
python convert_ar30_to_ar12.py ar30-regular-v2026-1.0-20260329.cin ar12-regular-v2026-1.0-20260329.cin
- 轉換大字表:
python convert_ar30_to_ar12.py ar30-big-v2026-1.02-20260407.cin ar12-big-v2026-1.02-20260407.cin
python convert_ar30_to_ar12_lime.py <輸入的行列30_cin檔案> <輸出的行列12_lime_cin檔案>範例:
- 轉換 LIME 標準字表:
python convert_ar30_to_ar12_lime.py ar30-regular-v2026-1.0-20260329.cin ar12-lime-regular-v2026-1.0-20260329.cin
- 轉換 LIME 大字表:
python convert_ar30_to_ar12_lime.py ar30-big-v2026-1.02-20260407.cin ar12-lime-big-v2026-1.02-20260407.cin
- convert_ar30_to_ar12.py:標準版 Python 轉換腳本。
- convert_ar30_to_ar12_lime.py:LIME 版 Python 轉換腳本。
ar30-regular-v2026-1.0-20260329.cin:行列 30 標準字表(輸入源)。ar12-regular-v2026-1.0-20260329.cin:轉換後的行列 12 標準字表。ar12-lime-regular-v2026-1.0-20260329.cin:轉換後的行列 12 LIME 標準字表。ar30-big-v2026-1.02-20260407.cin:行列 30 大字表(輸入源)。ar12-big-v2026-1.02-20260407.cin:轉換後的行列 12 大字表。ar12-lime-big-v2026-1.02-20260407.cin:轉換後的行列 12 LIME 大字表。
本專案採用 MIT License。