- elmacro 20170312.356(in MELPA)
- Convert keyboard macros to emacs lisp
概要
キーボードマクロ使っていますか?
キーボードマクロは一連のキー操作を覚えて
それを何度でも再現できるようにする仕組みです。
F3でマクロ記録開始→覚える操作→F4で記録終了
という流れです。
以後F4を押せば最後に記録したマクロを実行できます。
これだけだとキーボードマクロは1つしか使えないと思いがちですが、
M-x name-last-kbd-macro でキーボードマクロに名前をつければ
コマンドとして定義できます。
M-x insert-kbd-macro で名前をつけたキーボードマクロの内容を
Lisp式として書き下せるので、これをinit.elに貼り付ければ
Emacsを再起動しても使えます。
それをさらに便利にするのがこのelmacro.elです。
elmacro.elはキーボードマクロをEmacs Lispに変換します。
インストール
パッケージシステムを初めて使う人は
以下の設定を ~/.emacs.d/init.el の
先頭に加えてください。
(package-initialize) (setq package-archives '(("gnu" . "http://elpa.gnu.org/packages/") ("melpa" . "http://melpa.org/packages/") ("org" . "http://orgmode.org/elpa/")))
初めてelmacroを使う方は
以下のコマンドを実行します。
M-x package-install elmacro
アップグレードする方は、
以下のコマンドでアップグレードしてください。
そのためにはpackage-utilsパッケージが必要です。
M-x package-install package-utils (初めてアップグレードする場合のみ) M-x package-utils-upgrade-by-name elmacro
注意:
追記 mewとの相性が悪いようです。
elmacro-modeを有効にした状態だと、
mewでSPCを押してもスクロールしません。
設定 140828091038.elmacro.el(以下のコードと同一)
(require 'elmacro) (elmacro-mode)
実行方法
$ wget http://rubikitch.com/f/140828091038.elmacro.el $ emacs -Q -f package-initialize -l 140828091038.elmacro.el
使用例
たとえば現在行を消してキルリングに入れるにはC-a C-k C-kを使います。
これをキーボードマクロとして記憶させるには
F3 C-a C-k C-k F4
と操作します。
コマンドに変換するにはここで M-x elmacro-show-last-macro を実行します。
すると、Emacs Lisp化されたキーボードマクロがポップアップします。
現時点では「(kmacro-end-or-call-macro nil)」の行が入ってくるバグがあるので
この部分は削除してください。
(defun kill-current-line () "現在行を削除する" (interactive) (move-beginning-of-line 1) (kill-line nil) (kill-line nil))
なお、insert-kbd-macroではこのような定義になります。
(fset 'kill-current-line "\C-a\C-k\C-k")
Fig1: M-x elmacro-show-last-macro
本日もお読みいただき、ありがとうございました。参考になれば嬉しいです。