Next: , Up: Frames


15.1 編集用マウスコマンド

リージョンを選択したりコピーしたりするマウスコマンドは、 xtermプログラムとほぼ互換です。 Emacsと他のXクライアントプログラムとのあいだでコピーするには、 Xのマウスコマンドと同じものを使えます。

これらのマウスコマンドでリージョンを選択して、 そのあとすぐにファンクションキー<DELETE>を打つと、 選択したリージョンを削除します。 ファンクションキー<BACKSPACE>やASCII文字<DEL>は、 これを行いません。 マウスコマンドと<DELETE>のあいだに別のキーを打ったときも、 これを行いません。

Mouse-1
クリックした位置にポイントを移動する(mouse-set-point)。 通常、左ボタン。
Drag-Mouse-1
ドラッグにより選択したテキストにリージョンを設定し、 キルリングにそれをコピーする(mouse-set-region)。 リージョンの始めと終りの両方をこのコマンド1つで指定できる。

ドラッグ中に、ウィンドウの上下からマウスが出ると、 マウスがウィンドウ内に戻ってくるまで、 ウィンドウを一定の割合でスクロールする。 こうして、画面全体に入りきらないリージョンでも選択できる。 一度にスクロールする行数は、 マウスがウィンドウの縁からどの程度離れているかに依存する。 変数mouse-scroll-min-linesには最小の行数を指定する。

Mouse-2
クリックした場所に、もっとも最近にキルしたテキストをヤンクする (mouse-yank-at-click)。 通常、中ボタン。
Mouse-3
このコマンドmouse-save-then-killは、 クリックした場所とリージョンの状態に依存して、 いくつかの機能がある。

もっとも基本的な場合は、ある場所でMouse-1をクリックしてから、 別の場所でMouse-3をクリックしたとき。 こうすると、これらの2点のあいだにあるテキストをリージョンとして選択する。 さらに、新しいリージョンをキルリングへもコピーするので、 別の場所へそれをコピーできる。

テキスト上でMouse-1をクリックしてから、 スクロールバーでスクロールしたあとでMouse-3をクリックすると、 スクロールする以前の(Mouse-1でクリックした)場所を覚えていて、 そこをリージョンの片方の端点として使う。 こうすると、画面に入りきらないリージョンでも選択できる。

より一般的には、強調表示されたリージョンがないならば、 Mouse-3は、ポイントとクリックした位置のあいだのテキストを リージョンとして選択する。 これは、ポイントがあった位置にマークを設定し、 クリックした位置にポイントを移動することで行う。

強調表示されたリージョンがある場合、あるいは、 ボタン1をドラッグしてリージョンを設定してある場合、 Mouse-3はクリックした場所に近い側のリージョンの端を クリック位置に移動して調整する。 また、調整したリージョンのテキストは、 キルリング内の古いリージョンのテキストを置き換える。

もともとMouse-1をダブルクリックあるいはトリプルクリックして、 リージョンを単語や行単位で設定した場合には、 Mouse-3によるリージョンの調整も単語や行単位で行われる。

連続して2度同じ場所でMouse-3を使うと、 すでに選択してあるリージョンをキルする。

Double-Mouse-1
このキーは、クリックした単語全体にリージョンを設定する。 『シンボル』の構文(Cの下線のような)の文字をクリックすると、 その文字を囲むシンボル全体にリージョンを設定する。

開き括弧や閉じ括弧の構文の文字をクリックすると、 その文字で始まり/終る括弧で囲まれた塊(sexp)にリージョンを設定する。 文字列区切りの構文(Cのシングルクォートやダブルクォート)の文字をクリック すると、(その文字が文字列の始まりか終りかを発見的方法を使って決めて) 文字列定数を囲むリージョンを設定する。

Double-Drag-Mouse-1
このキーは、 ドラッグした範囲内にある単語を囲むリージョンを設定する。
Triple-Mouse-1
このキーは、クリックした行全体を囲むリージョンを設定する。
Triple-Drag-Mouse-1
このキーは、ドラッグした範囲内にある行すべてを囲むリージョンを設定する。

マウスを使ったもっとも単純なテキストのキル方法は、 片方の端でMouse-1を押し、もう一方の端でMouse-3を2回押すことです。 See Killing。 バッファから削除しないでキルリングにテキストをコピーするには、 Mouse-3を一度だけ押します。 あるいは、Mouse-1でテキストを横断してドラッグするだけです。 そうすると、どこででも、それをヤンクすることでコピーできます。

キルしたりコピーしたりしたテキストをどこか別の場所にヤンクするには、 マウスをその場所に移動してMouse-2を押します。 See Yanking。 しかし、mouse-yank-at-pointnil以外ならば、 Mouse-2はポイント位置にヤンクします。 つまり、ウィンドウのどこをクリックしたのか、あるいは、 フレームのどのウィンドウをクリックしたのかは問題ではありません。 デフォルトの値はnilです。 この変数は二次セレクションのヤンクにも影響します。

別のXのウィンドウへテキストをコピーするには、 その部分をキルするかキルリングに保存します。 Xの管理下では、一次セレクションも設定します。 そのあとで、別のXのウィンドウで動いているプログラムの『ペースト』や 『ヤンク』コマンドを使って、セレクションからテキストを挿入します。

別のXのウィンドウからテキストをコピーするには、 そのウィンドウで動いているプログラムの『カット』や『コピー』コマンドを 使って目的のテキストをセレクションにします。 そのあとで、C-yMouse-2を使ってEmacsにヤンクします。

これらのカット/ペーストコマンドはMS-Windows上でも動作します。

Emacsがテキストをキルリングに入れたり、 キルリングのテキストを先頭へ巡回するとき、 EmacsはXサーバーの一次セレクションに設定します。 このために、別のXクライアントがテキストを参照できるのです。 テキストが十分に短い場合にのみ (x-cut-buffer-maxは最大文字数を指定する)、 Emacsはカットバッファにもテキストを収めます。 長い文字列をカットバッファへ置くには時間がかかります。

キルリングの始めのテキストをヤンクするコマンドは、 実際には、別のプログラムの一次セレクションをまず調べ、 そのあとで、カットバッファのテキストを調べます。 どちらにもヤンクするテキストがなれば、キルリングの内容を使います。