Previous: , Up: タッチスクリーン入力と仮想キーボード   [Contents][Index]


6.2 Emacsでの仮想キーボードの使用

物理的なキーボードが接続されていないシステムでは、そのウィンドウシステムがオンスクリーンキーボード(“仮想キーボード: virtual keyboard” として広く知られている)を提供しているかもしれません。これは何列かに並んだクリック可能なボタンをもち、キーボード入力を実際のキーボードと同じようにアプリケーションに送信するキーボードです。

フォーカスのあるアプリケーションがテキスト入力をリクエストしていないときは、ディスプレイ上で少しの領域しか専有しないように仮想キーボードを非表示にします。Xを実行するシステムでは仮想キーボードの表示は保証されていますが、Android Emacsのように他のシステムでは必要になったとき(一般的にはタッチスクリーンへの“タップ”ジェスチャーへの反応として; Emacsでのタッチスクリーンの使用を参照)、あるいはミニバッファー(ミニバッファーを参照)を使用する際の仮想キーボードの表示はAndroid Emacsの役目です。

“タップ”ジェスチャーによってあるコマンドが実行されると、Emacsはリストtouch-screen-set-point-commandsを検索して、それがポイントのセットを意図したコマンドなのかどうかチェックします。もし意図したコマンドであれば、新たなポイントの下にあるテキストが読み取り専用でなければ仮想キーボードをアクティブして、アプリケーションのユーザーがそこで入力できるようになるのです。

touch-screen-set-point-commandsのデフォルト値には、コマンドmouse-set-point (編集のためのマウスコマンドを参照)だけがセットされています。mouse-1はデフォルトでtouch-screen-set-point-commandsにバインドされており、同じようにタッチスクリーンのタップジェスチャーもバインドされています。

ユーザーオプションtouch-screen-display-keyboardはたとえテキストが読み取り専用であっても、すべてのタップジェスチャーにたいして仮想キーボードの表示を強制します。これはバッファーローカルにセットすることもできます。この場合にはセットされたバッファーを表示しているウィンドウへのタップの反応として、Emacsは常にキーボードを表示します。

オンスクリーンキーボードの表示や非表示を行う関数は他にもいくつかあります。詳細についてはOn-Screen Keyboards in The Emacs Lisp Reference Manualを参照してください。

コマンドの実行中にEmacsが仮想キーボードを表示できない可能性があるため、物理的キーボードを備えていない場合が多いウィンドウシステムでは、デバイスに常に存在するハードウェアボタンを素早く2回クリックしてquit(閉じる、終了)する機能を実装しています。中止と中断を参照してください。

Xではこのようなボタンは有効ではありませんが変数x-quit-keysymを通じて設定できます。Androidのデフォルトのキーはボリュームダウンボタンですが、これも変数android-quit-keycodeを通じて設定できます。

仮想キーボードで動作するようにデザインされた入力メソッドのほとんどは、デスクトップの入力メソッドとは異なる方法でテキストを編集します。

デスクトップの伝統的なウィンドウシステムでは、入力メソッドは進行中の文字合成の内容をスクリーン上に単に表示して、ユーザーの確認後にその内容を反映するイベントを送信します。

対照的に仮想キーボードの入力メソッドは、それぞれのフレームの選択されたウィンドウにたいして編集を直接実行します。これはXウィンドウシステムでは“テキスト変換(text conversion)”あるいは“文字列変換(string conversion)”と呼ばれる方法です。

Emacsはバッファーローカル変数text-conversion-styleが非nilのとき、つまり一般的にはtext-modeおよびprog-modeの派生モードの内部では、これらの入力メソッドを有効にします。

Emacsは入力メソッドから処理の要求を受信すると、常に非同期でテキスト変換を実行します。現在のところすでにプレフィクスキーが読み取られたキーシーケンス(キーを参照)は読み取りません。変換が完了した後はtext-conversionイベントが送信されます。Misc Events in the Emacs Reference Manualを参照してください。

バッファーのリージョンにたいして入力メソッドが処理を必要とする場合には、その領域は“構成リージョン(composing region)”、または“変換前リージョン(preconversion region)”と指定されます。変数text-conversion-faceは構成リージョンを特定のフェイスで表示するか、表示する場合にはどのフェイスを用いるかを制御します。

This page has generated for branch:emacs-30, commit:ab5505a8acf795c0a0a2745dd6fb666954c6a4bb to check Japanese translation.