mozc-modeless(モードレスなmozc)を作った
はじめに
私は、LLMを使った日本語入力システムSumibiを開発していますが、寄り道してmozc-modeless.elを作成しました。
Sumibiと同様に、IMEのON/OFFが存在しないモードレスのIMEです。MS-IMEなどの一般的なIMEは、文章入力とコーディングを切り替える際にIMEのON/OFFを意識する必要があります。mozc-modeless.elは、この切り替えの煩わしさを解消します。
モードとモードレスインターフェース
まず、モードとモードレスの概念について、Wikipediaの定義を引用します。
| Wikipedia - Mode (user interface)
ユーザーインターフェース設計において、モードとは、コンピュータプログラムや物理的なマシンインターフェース内の明確な設定であり、同じユーザー入力が他の設定とは異なる結果を生成するものです。モーダルインターフェースの代表例として、標準的なコンピュータキーボードのCaps lockキーやInsertキーがあります。これらは通常、押されるとユーザーの入力を異なるモードにし、再度押されると通常のモードに戻します。
モードを使用しないインターフェースは、モードレスインターフェースとして知られています。モードレスインターフェースは、あるモードに適した操作を別のモードで実行してしまうというモードエラーを、そもそもユーザーがそのようなエラーを起こせないようにすることで回避します。
IMEにおけるモードの問題
従来の日本語IMEは典型的なモーダルインターフェースであり、以下の問題があります:
-
同じキー入力(例:'a')が、モードによって異なる結果を生成(ひらがな「あ」、カタカナ「ア」、英字「a」)
-
ユーザーの注意が本来書きたい内容から現在の入力モードへと分散される
-
モードの状態を忘れることで、予期しない結果を得る(モードエラー)


典型的なモードエラーの例:
- カタカナモードで文章を入力し始める
- 英数モードのまま日本語を入力しようとする
- 全角/半角の切り替え忘れ
mozc-modelessの解決策
mozc-modeless.elは、日本語を入力したい時だけmozcを起動し、変換が確定すると自動的に英数モードに戻ることで、モード管理の負担を解消します。
-
mozc-modelessを有効化すると英数モードを維持します。
-
ローマ字の直後で[Ctrl-J]を押下するとmozcの変換状態に入ります。
nihongo[Ctrl-J]
⇓
日本語
-
mozcの操作が確定したら、英数モードに戻ります。
最後に
mozc.elを普段お使いの方は、ぜひ一度お試しください。
モード切り替えの煩わしさから解放され、より快適な入力環境を実現できます。
Discussion