読者です 読者をやめる 読者になる 読者になる

TeraTerm で動かしている Emacs でマウスを使えるようにする

マウストラッキング

TeraTerm などのターミナル上で動く(ホスト側の)アプリケーションは、マウスのカーソル位置などの情報をターミナルソフトに要求して受け取る機能がある。

TeraTerm はデフォルトでこの要求に答える設定になっているので、ホスト側で動くアプリケーションで、この機能(マウストラッキングというらしい)を有効にしておけば、ターミナルでもマウスが使える。

TeraTermのヘルプを見ると、もともとは xterm の機能なので、TERM環境変数が xterm 系でないと使えないのでは… と書いてあるが、Emacsは単独でこの機能のON/OFFが出来るのでたぶん大丈夫でしょう…。

Emacs の設定

(xterm-mouse-mode t)
(mouse-wheel-mode t)
(global-set-key [mouse-4] '(lambda () (interactive) (scroll-down 3)))
(global-set-key [mouse-5] '(lambda () (interactive) (scroll-up   3)))

TeraTerm の設定

設定(Setup)>その他の設定(Additional settings)>制御シーケンス(Control Sequence)にあります。

  • □ マウスイベント通知要求を受けいれる
  •  □ Controlキーを押している間はマウスイベントを通知しない

あたりがその設定。デフォルトONのはず。

操作性のメモ

mouse-4, mouse-5 はマウスホイールに割り当てられているので、ぐりぐりすればスクロール出来る。

いつもは出来ないマウスを使ったカーソルの移動も出来るようになる。 ちゃんと、クリックした位置へ Emacs のカーソルが移動します。

但し、クリックが Emacs へ渡されるので、これまで出来ていた、TeraTerm 上で右クリックして、 Windowsクリップボードの内容を貼り付ける機能は使えなくなってしまった。

でも大丈夫。それは Ctrl+右クリック でできます。

マウストラッキングモードでの TeraTerm の操作

  • Ctrl+左ドラッグ

    • コピー
  • Ctrl+右クリック

    • ペースト
  • Ctrl+Alt+左ドラッグ

    • 矩形コピー

マウストラッキングモードでの Emacs の操作

  • 左クリック

    • カーソルがその位置に移動しマークをセット
  • 右クリック

    • カーソルが移動しマークからその位置までを選択
  • 左ドラッグ

    • ドラッグ開始位置にマークをセットし、キーアップ位置までを選択
  • 左ドラッグ

    • 右クリックと同じ。キーアップしたところがクリック位置とみなされる。
  • ホイールを上へ

    • スクロールダウン
  • ホイールを下へ

    • スクロールアップ

終わり