EmacsのキーボードマクロでC-e C-jをM-jに割り当てる
プログラミングをしていると
- 行の途中で次行をinsertして、かつその行に移動したい
ということが良くありました。
いままではその際にC-eで行末まで移動してC-jで次行をinsertして移動ということをやっていたんですが、
あまりに良く行うのでM-jにまとめました。
その際にキーボードマクロを使ったのでその方法をメモ
マクロを作成
以下のコマンドを発行してキーボードマクロの記録を開始します。
C-x (
次にマクロにするコマンドを発行します。
今回の場合は以下の用にコマンドしました。
C-e C-j
マクロの記録を終了します。
C-x )
マクロが正しく動くかテストします。
C-x e もしくは F4キー
マクロの保存
以下のコマンドを発行してマクロに名前をつけます。
C-x C-k n でEnterキー
名前を聞かれたら今回入力する。
今回の場合は
goto-end-and-return
にしました。
これでM-x goto-end-and-returnを押したらマクロが動きます。
あと、次回からEmacs立ち上げ後も使うので.emacsにこのマクロを記述します。
.emacsを開いて以下のコマンドを発行します。
M-x insert-kbd-macro でEnterキー
マクロ名を聞かれるので上記で設定したマクロ名を入力します。
goto-end-and-return
すると.emacsのカーソル位置に以下のような感じの記述が追記されます。
(fset 'go-to-end-and-return (lambda (&optional arg) "Keyboard macro." (interactive "p") (kmacro-exec-ring-item (quote ("^E " 0 "%d")) arg)))
これで次回以降もM-x goto-end-and-returnとコマンドを打つとマクロが実行されるようになります。
あとはM-jに上記のマクロを割り当てます。
(global-set-key "\M-j" 'go-to-end-and-return)
これで今までC-e C-jと打っていたコマンドがM-jで動くようになりました。
めでたしめでたし。