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 の操作
左クリック
- カーソルがその位置に移動しマークをセット
右クリック
- カーソルが移動しマークからその位置までを選択
左ドラッグ
- ドラッグ開始位置にマークをセットし、キーアップ位置までを選択
左ドラッグ
- 右クリックと同じ。キーアップしたところがクリック位置とみなされる。
ホイールを上へ
- スクロールダウン
ホイールを下へ
- スクロールアップ