TeraTermなどのターミナルで使える、コピーしたいテキストを「マウスで範囲選択するだけ」でコピーできるのって、とっても便利ですよね。
Emacsにも同じ機能があるのはご存知でしょうか?
Emacsでもマウスをドラッグしてテキストを範囲選択するだけで、キルリングとクリップボードにテキストをコピーできます。設定もとっても簡単ですので、その方法をご紹介します。
一時的に機能を有効化する
マウスの範囲選択でテキストをコピーする機能を有効化/無効化するコマンドはないので、次の方法で一時的に有効化します。
どのバッファでもいいので、次の1行を記載します。
(setq mouse-drag-copy-region t)
これは変数mouse-drag-copy-regionにtを設定するEmacs Lisp式です。この変数のデフォルト値は「nil」で、マウス選択でコピーする機能は無効になっています。変数を「t」に設定することで機能を有効化します。
この式を評価して、変数mouse-drag-copy-regionに「t」を設定します。それには閉じカッコ後ろにカーソルを移動して、次のコマンドを実行します。
C-x C-e
これはEmacs Lisp式を評価するコマンドです。実行するとエコーエリアに一瞬「t」と表示されたと思います。これで変数にtが設定されました。
以上が完了すれば、マウスをドラッグしてテキストを範囲選択してください。それだけでEmacsのキルリングとシステムのクリップボードにテキストがコピーされます。クリップボードにもコピーされるので、他のアプリにも貼り付けられます。とっても便利ですね。
この機能が気に入ったら設定を恒久化しましょう。
恒久的に設定する
恒久的に設定をする場合は、上述のEmacs Lisp式をinit.elに記述するだけです。
記述したら有効化するためにEmacsを再起動するか、先程と同様に「C-x C-e」を実行して、Emacs Lisp式を評価します。
機能を無効化する
一時的に機能を無効化したければ次のように記載して、Emacs Lisp式を「C-x C-e」で評価します。
(setq mouse-drag-copy-region nil)
恒久的に無効化したければ、init.elから追加した設定を削除します。
なお、変数mouse-drag-copy-regionに実際に設定されている値を確認したければ、次のコマンドで確認できます。
C-h v mouse-drag-copy-region
すると変数mouse-drag-copy-regionのヘルプが表示され、変数の値も確認できます。
まとめ
マウスでドラッグするだけでコピーできるのは、本当に便利です。皆様も是非試してください。きっと気にいるでしょう。