Next: , Previous: , Up: Microsoft Windows   [Contents][Index]


G.6 MS-Windowsでのキーボードの使用方法

このセクションでは、Emacsでのキーボード入力に関するWindows固有の機能について説明します。

MS-Windowsプログラムで慣習的に使用されるキー組み合わせ(“キーボードショートカット”として知られる)の多くが、伝統的なEmacsのキーバインドと衝突します(これらEmacsのキーバインドは、Microsoftが設立される数年前には確立されていました)。衝突の例にはC-cC-xC-zC-aW-SPCが含まれます。CUAモード(CUA Bindingsを参照してください)を有効にすることにより、これらのいくつかの意味をMS-Windowsでの意味に近づけるよう再定義できます。

デフォルトでは、Altとラベルされたキーは、METAキーにマップされます。かわりにAlt修飾を生成したい場合は、変数w32-alt-is-metanilをセットしてください。

MS-Windowsでは、Alt-TABのような特定のキー組み合わせは、Windowsが使用するために予約済みです。これらのキー組み合わせは、Emacsがそれを取得する前に、システムにより解釈されます。関数w32-register-hot-keyを使用して、Windowsに横取りされることなく、Emacsがキーシーケンスを取得できます。このキーシーケンスをホットキー(hot key)として登録して、Windowsにたいするそのキー特別な意味をオーバーライドします(MS-Windowsは、フォーカスがEmacsにあるときだけ、そのキーシーケンスがホットキーだと指示されるので、他のWindowsアプリケーションにたいして、特別なキーは通常どおりの意味をもちます)。

w32-register-hot-keyに指定する引数は、define-keyで許されるベクター形式で、修飾キーあり/なしで、ただ1つのキーを指定しなければなりません。w32-alt-is-metat(デフォルト)の場合、メタ修飾はAltキーと解釈され、ハイパー修飾は常にWindowsキー(通常startという文字とWindowsのロゴがラベルされています)と解釈されます。この関数がキーシーケンスの登録に成功すると、ホットキーIDを返し、そうでない場合はnilが返されます。

たとえば(w32-register-hot-key [M-tab])とすると、Emacs内で普通にM-TABを使用して、トップレベルにあるポイント位置の単語やシンボルを補完したり、以前にインクリメンタル検索の間に見つけた文字列にたいして、カレント検索文字列を補完することができます。

関数w32-unregister-hot-keyは、引数となるキーシーケンスにたいして、w32-register-hot-keyと逆のことを行ないます。

デフォルトでは、CapsLockキー(このキーは小文字を大文字に変換します)は通常の文字キーだけに効果をもちます。しかし変数w32-capslock-is-shiftlockを非nil値にセットした場合、CapsLockは非文字キーにも同様に効果をもつようになり、その非文字キーをタイプするとき、あたかもShiftキーが押されたかのようになります。

変数w32-enable-caps-locknil値をセットした場合、CapsLockキーは、ある文字にたいするシフトが押されたバージョンのキーではなく、かわりにシンボルcapslockを生成します。デフォルト値はtです。

同様にw32-enable-num-locknilの場合、NumLockキーはシンボルkp-numlockを生成します。デフォルトはtで、これはNumLockに期待された動作、すなわちテンキー上のキーのもつ意味の切り替えを行ないます。

変数w32-apps-modifierは、Appsキー(通常は右Altキーと右Ctrlキーの間にあります)の効果を制御します。変数の値には、対応する修飾キーを示すシンボルhypersupermetaaltcontrolshiftのどれか1つを指定するか、nilを指定してそれをキーappsとして扱います。デフォルトはnilです。

変数w32-lwindow-modifierは、左Windowsキー(通常はstartという文字とWindowsロゴがラベルされています)の効果を決定します。変数の値がnil(デフォルト)の場合、このキーはシンボルlwindowを生成します。これにhypersupermetaaltcontrolshiftのどれか1つを指定すると、対応する修飾キーを生成します。これに似た変数w32-rwindow-modifierは右Windowsキーの効果を制御し、w32-scroll-lock-modifierは同じことをScrLockキーにたいして行ないます。これらの変数がnilにセットされている場合、右Windowsキーはシンボルrwindowを生成し、ScrLockはシンボルscrollを生成します。

EmacsがネイティブのWindowsアプリケーションとしてコンパイルされていると、Windowsメニューを呼び出すAltをタップ(tapping: 覗き見)するWindows機能をオフに切り替えます。これはEmacsではAltとして用いられるからです。Emacsを使用するとき、ユーザーが1度METAキーを押して、後で気が変わることがあります。もしこのキーがWindowsメニューを立ち上げる効果をもつ場合、それに続くコマンドの意味が変更されてしまいます。多くのユーザーは、これにイライラするでしょう。

w32-pass-alt-to-systemを非nil値にセットすることにより、Altキーの覗き見にたいするWindowsのデフォルトの処理を再び有効にできます。

変数w32-pass-lwindow-to-systemw32-pass-rwindow-to-systemは、左Windowsキーと右Windowsキーが、Windowsに渡されるか、Emacsに渡されるかを決定します。値がnilの場合、これらのキーはEmacsに渡され、それ以外の場合はWindowsに渡されます。両方の変数のデフォルトはtです。これらのキーをWindowsに渡すことにより、たとえばLwindowStartメニューを開くなどの、通常の効果が生成されます。22

変数w32-recognize-altgrは、(もしそれがキーボードにあれば)AltGrキー(またはそれと同種のキー)が右Altと左Ctrlキーを一緒に押したときの組み合わせとするか、それともそれをAltGrキーとして認識するかを制御します。デフォルトはtで、これはそれらのキーがAltGrを生成することを意味します。これをnilにセットすることにより、AltGrキー(またはそれと同種のキー)との組み合わせは、Ctrl修飾とMETA修飾の組み合わせとして解釈されます。


Footnotes

(22)

現在のところEmacsでは抑止できないが、低レベルでWindowsにとらえられる、“Windows”キーと他のキーの組み合わせがいくつかあります。たとえばLwindow rは常にWindowsの‘Run’ダイアログをポップアップします。とはいえ変数w32-phantom-key-codeをカスタマイズすることが、あるケースでは助けになるかもしれません。