highlight-symbolとhydraを組み合わせると捗る
- GNU Emacs 24.4.50.1
- highlight-symbol 1.2
- hydra 0.10.0
Awesome Emacsという
便利packageリンク集があるのを知って眺めていたら、
表題のhighlight-symbol
とhydra
を組み合わせてみたら捗るんじゃないかと
思って組み合わせてみたらやっぱり捗りそうな感じだったのでメモしておく。
highlight-symbolとは
名前の通りコード内の同一シンボル(と思われるもの)をハイライトしてくれるツール。
hydraとは
関連するコマンドを複数定義して、 それらのコマンドを連続して簡単に呼び出せるようにするツール。
捗る設定
init.el
に以下のように書いて、評価して、
(global-set-key (kbd "C-x H") (defhydra hydra-highlight-symbol (:post (progn (highlight-symbol-remove-all))) "highlight-symbol" ("." highlight-symbol-at-point "highlight") ("n" highlight-symbol-next "next") ("p" highlight-symbol-prev "prev") ("N" highlight-symbol-next-in-defun "next in defun") ("P" highlight-symbol-prev-in-defun "prev in defun")))
C-x H
とタイプすれば各コマンド(この場合.
、n
、p
、N
、P
)が使えるモードになる。
(「モード」という呼び方が正しいのかどうかは知らない)
C-x H
とタイプした後は各コマンドを単体で連続して使える。
つまりn
、n
、n
とタイプすれば次々とシンボルをたどることができる。
定義されているキーバインド以外を入力するとこのモードから抜ける。
:post
を設定して、抜けるときにハイライトを解除するようにしている。
よくわからないと思うのでスクリーンキャストをどうぞ:
録画の都合上emacs起動時からになっているので半分くらい起動を待つ時間になっております:p 録画用に軽い設定を用意すればいいのかもしれない。 asciinema初めて使ってみたけど便利。
・・・抜けるときにハイライトが解除されてないことに気づいちゃった人もいると思いますが、
なんでかターミナルで動かすとhighlight-symbol-remove-all
が効かないんです。
普段はEmacs.appを使っていてそちらでは問題ないので深追いはしない。
hydra
のREADMEに載っているzoomやGoto-errorは普通に便利そうなので後で試す。
追記 2015-02-20 10:00
Emacs.appの方でもhighlight-symbol-remove-all
が効かなくなっていた・・・
別のパッケージと干渉している可能性もある?
あとで調べる。