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」)

  • ユーザーの注意が本来書きたい内容から現在の入力モードへと分散される

  • モードの状態を忘れることで、予期しない結果を得る(モードエラー)

    mode-error.png
    mode-error.png

典型的なモードエラーの例:

  • カタカナモードで文章を入力し始める
  • 英数モードのまま日本語を入力しようとする
  • 全角/半角の切り替え忘れ

mozc-modelessの解決策

mozc-modeless.elは、日本語を入力したい時だけmozcを起動し、変換が確定すると自動的に英数モードに戻ることで、モード管理の負担を解消します。

  1. mozc-modelessを有効化すると英数モードを維持します。

  2. ローマ字の直後で[Ctrl-J]を押下するとmozcの変換状態に入ります。

    nihongo[Ctrl-J]

    日本語

  3. mozcの操作が確定したら、英数モードに戻ります。

最後に

mozc.elを普段お使いの方は、ぜひ一度お試しください。
モード切り替えの煩わしさから解放され、より快適な入力環境を実現できます。

Discussion