Next: , Up: フレームとグラフィカルなディスプレイ   [Contents][Index]


22.1 編集のためのマウスコマンド

mouse-1

クリックした場所にポイントを移動します(mouse-set-point)。

Drag-mouse-1

ドラッグにより選択されたテキストを取り囲むリージョンをアクティブ化して、そのテキストをプライマリー選択に置きます(mouse-set-region)。

mouse-2

クリックした場所にポイントを移動して、そこにプライマリー選択の内容を挿入します(mouse-yank-primary)。

mouse-3

リージョンがアクティブなときは、近くにあるリージョンの終端をクリックした位置に移動します。アクティブでないときは現在のポイントにマークをセットして、ポイントをクリックした位置に移動します。結果となるリージョンはkillリングに保存されます。2回目のクリックでリージョンをkillします(mouse-save-then-kill)。

C-M-mouse-1

ドラッグにより選択されたテキストを取り囲む矩形リージョンをアクティブにします。矩形領域(Rectangles)を参照してください。

もっとも基本的なマウスコマンドはmouse-set-pointで、これはウィンドウのテキスト領域でマウスの左ボタン、mouse-1をクリックすることにより呼び出されます。これはポイントをクリックされた位置に移動します。そのウィンドウが選択されたウィンドウでなかったとき、そのウィンドウが選択されたウィンドウになります。mouse-1をダブルクリックして、リージョンをアクティブにすることもできます(単語と行にたいするマウスコマンドを参照)。

クリックしたフレームが選択されたフレームでなかった場合は通常、クリックされたフレームが選択されたフレームになるのに加えて、ウィンドウも選択されてカーソルがセットされます。Xウィンドウシステムでは、変数x-mouse-click-focus-ignore-positiontにセットすることにより、これを変更できます。この場合、選択されていないフレームへの最初のクリックではフレームだけを選択し、他は変更しません。次にクリックするとそのウィンドウを選択してカーソルをその位置にセットします。

mouse-1を押してテキストの周辺をドラッグすると、最初にマウスボタンを押した位置にマークが置かれ、ボタンを離した位置にポイントがセットされ(マークとリージョンを参照してください)、その領域がアクティブになります(mouse-set-region)。それに加えてリージョンのテキストがプライマリー選択となります(他のウィンドウアプリケーションにたいするカットアンドペーストを参照してください)。

変数mouse-drag-copy-regionを非nil値に変更すると、テキストの周囲をドラッグすることにより、そのテキストをkillリングに追加します。デフォルトはnilです。

この変数がnon-emptyの場合には、リージョンが空でない場合にかぎりkillリングへコピーします。たとえばマウスで1文字の半分に満たないエリアをドラッグすると、通常なら空の文字列がkillリングにコピーされますが、non-emptyならこの短いマウスドラッグがkillリングに影響を与えることはありません。

ドラッグしている途中でマウスがウィンドウの上または下を超えた場合、マウスがウィンドウ内に戻るまで、ウィンドウが一定の割合でスクロールします。この方法により、スクリーン全体に収まらないリージョンを選択できます。1度に何行スクロールするかは、マウスがウィンドウの縁からどれだけ離れたかに依存します。変数mouse-scroll-min-linesは、最小ステップサイズを指定します。

オプションmouse-drag-mode-line-bufferが有効、かつウィンドウシステムがファイルのドラッグをサポートしていれば、モードライン内のバッファー名部分をドラッグすることによって、そのバッファーのファイルを別のプログラムやフレー厶にドラッグできます。

マウスの真ん中のボタン、mouse-2をクリックすると、クリックした位置にポイントを移動して、プライマリー選択の内容を挿入します(mouse-yank-primary)。他のウィンドウアプリケーションにたいするカットアンドペーストを参照してください。この振る舞いは、他のXアプリケーションと一貫性があります。かわりにmouse-2を、mouse-yank-at-clickにバインドできます。これはクリックした位置にyankするコマンドです。

変数mouse-yank-at-pointを非nil値に変更すると、mouse-2はポイントを移動しません。これはどこをクリックしたか、フレームのどのウィンドウをクリックしたかに関係なく、ポイントのある位置にテキストを挿入します。この変数はmouse-yank-primarymouse-yank-at-clickの両方に影響します。

マウスの右ボタン、mouse-3をクリックすると、コマンドmouse-save-then-killが実行されます。これはどこをクリックしたかと、リージョンの状態に依存していくつかのアクションを処理します。

mouse-save-then-killコマンドは、変数mouse-drag-copy-regionの値にもしたがいます(上記参照)。変数の値が非nilのときは、コマンドがアクティブなリージョンをセットまたは調整したとき、常にリージョンのテキストはkillリングにも追加されます。一番最近のkillリングのエントリーが同じ方法で追加されたものである場合、新しいエントリーを作成せず、そのエントリーを置き換えます。

上記で説明した任意のマウスコマンドを使ってセットしたリージョンは、シフト選択以外のマウス移動コマンド、および通常のマークを非アクティブ化する方法により、マークが非アクティブになります。シフト選択を参照してください。

スクロールに使うことができる“ホイール”があるマウスもいくつかあります。ほとんどのグラフィカルなディスプレイでEmacsはデフォルトでマウスホイールによるウィンドウのスクロールをサポートします。この機能を切り替えるにはM-x mouse-wheel-modeを使います。変数mouse-wheel-follow-mouseおよびmouse-wheel-scroll-amountは、(どこでホイールによるスクロール操作が行われたかによる)スクロール対象の選択方法と、バッファーがスクロールされる量を決定します。変数mouse-wheel-progressive-speedは、スクロールの早さがホイールを移動した早さにリンクするかを決定します。このモードはフォントサイズの拡大と縮小もサポートしており、デフォルトではCtrl修飾によるスクロールにバインドされています。このモードが有効だと、マウスホイールはwheel-upwheel-downのようなスペシャルイベントを生成します(mouse-4mouse-5と報告する古いシステムも一部あり)。マウスに水平スクロール用ホイールがあれば、wheel-leftwheel-rightのようなイベントも同様に生成されます。

EmacsはShift修飾による水平スクロールもサポートします。水平スクロールを開始する前に数プレフィックス引数(例: M-5)をタイプすることにより、ユーザーオプションmouse-wheel-scroll-amount-horizontalが定義するステップ値が変更されます。

マウスがホイールのチルトが可能、あるいはタッチパッドがチルトをサポートしていれば、変数mouse-wheel-tilt-scrollを非nil値にカスタマイズして水平スクロールも有効にできます。デフォルトではマウスホイールをチルトするとチルトした方向にウィンドウのビューがスクロールします。つまり右にチルトするとウィンドウは右にスクロールするのでウィンドウに表示されていたテキストは水平左方向に移動します。水平スクロールの方向を逆転したい場合は、変数mwheel-flip-directionを非nil値にカスタマイズしてください。

Imageモード(イメージファイルのvisitを参照)ではイメージ上にマウスポインターがあるときには、Ctrl修飾とともにマウスホイールのスクロールはマウスポインター下のイメージをスケーリング、Shift修飾でイメージを水平方向にスクロールします。