- centimacro 20140306.627(in MELPA)
- Assign multiple macros as global key bindings
概要
キーボードマクロ 使っていますか?
同じ操作を繰り返すときには絶大な威力を発揮するので、
一日に何十回も使っている人もいるほどです。
キーボードマクロは1つしか定義できないと誤解されがちですが、
実は複数個登録できますし、コマンド化だってできます。
実際は複数個のキーボードマクロを回す
「 キーボードマクロリング 」が
キルリングのように用意されています。
しかし C-x C-k プレフィクスキーで回す必要があり面倒です。
正直、僕には使いこなせません。
そこで centimacro.el は、任意のキーボードマクロを
一時的にキーに割り当てるというアプローチを採用しました。
一言で言えばキーボードマクロのレジスタです。
M-f3 を押すとマクロを割り当てるキーを訊いてくるので、
空いている適当なキーを指定し、
その後は普通にキーボードマクロを定義してください。
キーボードマクロ終了は割り当てたキーかf4です。
centimacroのすごいところは、centimacro呼び出し中に
別のcentimacroを呼び出せるところです。
ちょっとした テンプレート のような
レジスタ のような使い方があります。
- <M-f3><f6>foo<f6> → <f6> で "foo" が挿入される
- <M-f3><f7><f6>bar<f7> → <f7> で "foobar" が挿入される
- <M-f3><f8><f6>-<f7>-<f6><f8> → <f8> で "foo-foobar-foo" が挿入される
- <M-f3><f6>omg<f6> → <f6> で "omg" が挿入される
- <f7> で "omgbar" が挿入される
- <f8> で "omgbar-omg-omg" が挿入される
1と2でそれぞれf6とf7にcentimacroを定義します。
3は先程定義したばかりのcentimacroを呼び出すcentimacroです。
4でcentimacroを別な文字列挿入に再定義し、
5と6で再定義されたcentimacroを反映します。
このように、進化したレジスタとして一時的に
入力する文字列を記憶できますし、
それだけではなく任意の操作を必要なときに繰り返せます。
キーボードマクロ自体超強力な機能ですし、
自然な形で複数個のキーボードマクロが使えるというのは、
とんでもなく大きな可能性を秘めているでしょう。
あえてf5〜f8に何もコマンドを割り当てないで空けておいてもいいし、
M-数字も絶好のcentimacroポジションです。
キーボードマクロ愛用者は自然な形でなじめるはずです。
インストール
パッケージシステムを初めて使う人は
以下の設定を ~/.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/")))
初めてcentimacroを使う方は
以下のコマンドを実行します。
M-x package-install centimacro
アップグレードする方は、
以下のコマンドでアップグレードしてください。
そのためにはpackage-utilsパッケージが必要です。
M-x package-install package-utils (初めてアップグレードする場合のみ) M-x package-utils-upgrade-by-name centimacro
設定 150331055143.centimacro.el(以下のコードと同一)
;;; centi-assignを割り当てるキー (setq centi-assign-key (kbd "<M-f3>")) (require 'centimacro) (global-set-key (kbd "<C-M-f3>") 'centi-restore-all) (defadvice centi-restore-all (after message activate) (message "Centimacro restored"))
実行方法
$ wget http://rubikitch.com/f/150331055143.centimacro.el $ emacs -Q -f package-initialize -l 150331055143.centimacro.el
本日もお読みいただき、ありがとうございました。参考になれば嬉しいです。