先月は泊まりがけの家族旅行や出張があり,ノートPCを開いて作業をしました.
テキスト編集に使用するのは,Windows用のEmacsです.
- Emacs 27.1を使う
- mhatta/emacs-27-x86_64-win-ime: Emacs27 for Windows, 64bit build w/ Japanese IME support improvement
なのですが,しばらく操作していると,指の痛みを感じてきました.
ここでいくつかお断りです.以下では,「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が,それぞれ割り当てられているのを知りました.