わさっきhb

大学(教育研究)とか ,親馬鹿とか,和歌山とか,とか,とか.

EmacsでF12にコピーと貼り付けを割り当てる

 先月は泊まりがけの家族旅行や出張があり,ノートPCを開いて作業をしました.
 テキスト編集に使用するのは,Windows用のEmacsです.

 なのですが,しばらく操作していると,指の痛みを感じてきました.
 ここでいくつかお断りです.以下では,「C-」は「Ctrlキーを押しながら」,「S-」は「Shiftキーを押しながら」と読み替えてください.「F番号」はファンクションキー(番号は1から12まで),「Fn」はノートPCの手前左端に付いているキーです.
 指の痛みに話を戻しまして,その原因は,貼り付け作業にありました.ブラウザやExcelなど,他のアプリケーションの文字列をコピーして,Emacsに貼り付ける際には,C-yでもできるのですが,S-Insertに慣れてしまっています.
 そして使用しているノートPCでは,InsertはFnを押しながらでないと,機能しないので,3つのキーを同時に押す必要があり,あわてると失敗してしまうのでした.
 ShiftもFnも押さずに,1回のキーで,貼り付けられるといいんだけどと思いながら,キーボードの数字の並びより奥の,ファンクションキーを押していくと,F12に,何も割り当てられていないことに気づきました.
 貼り付けのEmacsのコマンドはyankですので,scratchバッファで,

(global-set-key <f12> 'yank)

と書いて,最後はEnterではなくC-jで,実行できるはず…失敗でした.ここは

(global-set-key [f12] 'yank)

と書く必要があったのでした.C-jでエラーが出ることなく,それ以降はF12キーのみで貼り付けができるようになって,編集作業が格段に進みました.
 しかしscratchバッファでの実行では,Emacsを終了すると,割り当てが消えてしまいます.
 帰宅して,~/.emacsに取り入れるべく,もう少し調査をしました.M-x help,そしてkのあと,キー入力で,そのキーストロークで何が行えるかを,知ることができます.C-yはyank,と思いきや,"C-y runs the command clipboard-yank (found in global-map),"となっています.
 さらに,"It is bound to C-y, <paste>, <f18>."と表示されます.「F18」のキーがあるのかと思いながら,ShiftやCtrlやAltを押しながらファンクションキーを押したものの,F18になるものは,見つかりませんでした.
 またこの作業を通じて,使用しているEmacs環境では,「F番号」を押す際,Shiftキーの同時押しは無視されることが分かりました*1.しかしCtrlキーの同時押しは有効です.そこでC-F12により,M-wと同じ操作になるようにしました.これは「コピー」です.「切り取り」は,C-wがあればいいでしょう.
 最終的に以下の内容を~/.emacsに追加しました.

(global-set-key [C-f12] 'clipboard-kill-ring-save)
(global-set-key [f12] 'clipboard-yank)

 ちなみに他のアプリケーションでF12は,Chromeなどブラウザの開発者ツールの起動のほか,IrfanViewで画像を表示させてからペイント機能を使用する際に,よく使用します.どちらもトグルになっていて,1回押すとツール表示が出て,もう1回押すと消えます.

*1:それと,F11にはtoggle-frame-fullscreenが,F10にはmenu-bar-openが,それぞれ割り当てられているのを知りました.