Next: , Up: MS-DOS


C.1 MS-DOSのキーボードとマウス

PCのキーボードの左側の<ALT>キーは、<META>キーに割り当てられます。 <SUPER>キーと<HYPER>キーのエミュレーションには、選択肢が2つあります。 変数dos-hyper-keydos-super-keyを1にすれば、 右側の<CTRL>キーを選びます。 変数dos-hyper-keydos-super-keyを2にすれば、 右側の<ALT>キーを選びます。 dos-super-keydos-hyper-keyのいずれも1でなければ、 デフォルトで右側の<ALT>キーも<META>に割り当てられます。 しかし、MS-DOSの国際化キーボード用プログラム KEYB.COMをインストールしてある場合は、 右側の<ALT>を<META>には割り当てません。 というのは、米国配列のキーボードでない場合、 右側の<ALT>は~@として使われるからです。 この場合には、左側の<ALT>のみを<META>として使えます。

変数dos-keypad-modeは、 数字キーパッド上のキーが返すキーコードを制御する変数です。 ファイル_emacsにつぎの行を入れておけば、 <ENTER>キーがC-jとして働くように定義できます。

     
     ;; 数字キーパッドのEnterキーをC-jとして動作させる。
     (define-key function-key-map [kp-enter] [?\C-j])

(ほとんどのワークステーションでの呼称から) Emacsで<DEL>と呼ばれるキーは、PCでは<BS>(バックスペース)です。 このため、PC特有の端末初期化においては、 <BS>キーは<DEL>として動作するようにしています。 同じ理由から、<DEL>キーは <C-d>として動作するようにしてあります。

MS-DOS用のEmacsでは、 C-<BREAK>C-gのような中断文字として認識します。 これは、Emacsが入力を読もうとしないと C-gが打鍵されたことを検出できないからです。 そのため、動作中のコマンドを止めるためにC-gを使えません (see Quitting)。 対照的に、C-<BREAK>は (他のシステムでのC-gのように)打鍵するとすぐに検出されるので、 動作中のコマンドを停止したり緊急脱出したりするために使えます (see Emergency Escape)。

MS-DOS用Emacsは、(デフォルトの端末だけで)マウスを使えます。 メニューやメニューバー(see Menu Bar)の利用を含めて、 マウスコマンドはドキュメントどおりに動作します。 MS-DOS用Emacsではスクロールバーは使えません。 PCのマウスには、通常、2つのボタンしかありません。 これらはMouse-1Mouse-2として動作しますが、 2つのボタンを同時に押せばMouse-3として動作します。

MS-DOS用EmacsがWindows上で動作している場合には、 クリップボードの操作を利用できます。 キルリングにテキストを置いたり、 キルリングからテキストをヤンクしたりするコマンドでは、 Xウィンドウシステムの場合と同様に、 まずWindowsのクリップボードを調べます(see Mouse Commands)。 Windows上のMS-DOS用Emacsは、 一次セレクションとカットバッファのみを利用し、 二次セレクションはつねに空です。

Windowsで実装されているクリップボードの参照方法のため、 クリップボードに置けるテキストの長さは、 Emacsが利用できるDOSの空きメモリ量に制限されます。 通常、620Kバイトまでのテキストをクリップボードに置けますが、 この上限はシステムの設定に依存し、 他のプログラムのサブプロセスとしてEmacsを実行しているときには少なくなります。 削除したテキストがクリップボードに入りきらなければ、 Emacsはその旨のメッセージを出力して、 テキストをクリップボードへ置きません。

Windowsのクリップボードにはナル文字を入れられません。 キルしたテキストにナル文字が含まれる場合には、 Emacsはそのようなテキストをクリップボードへ置きません。 さらに、エコー領域には、その旨、メッセージを表示します。

変数dos-display-scancodesの値がnil以外のときには、 キーを打つたびに、Emacsは各キーのASCII(コードの)値と キーボードスキャンコードを出力します。 この機能は、デバッグ用のコマンドview-lossageを補佐します。