EmacsでPythonのインデントブロックを可視化する
vimにインデントを可視化するvim-indent-guidesというのがあるということを知って、うちのEmacsにも欲しいなぁと思って探してみたら、githubに作ってくれている方がいたので導入してみた。
antonj/Highlight-Indentation-for-Emacs · GitHub
Emacs Lispは全く分からないけどソース眺める限りpython-mode,ruby-mode,あとnxml-mode(XML用?)限定っぽい?
gitでダウンロードしてみる。
$ git clone http://github.com/antonj/Highlight-Indentation-for-Emacs Cloning into Highlight-Indentation-for-Emacs... remote: Counting objects: 27, done. remote: Compressing objects: 100% (25/25), done. remote: Total 27 (delta 11), reused 4 (delta 2) Unpacking objects: 100% (27/27), done.
で、Emacsのライブラリにhighlight-indentation.elを移して、init.elに
(require 'highlight-indentation)
と書く。レポジトリはもう使わないので消す(この使い方あんま賢くない気がするけど……)。あとはEmacsでPythonのコード開いて、M-x highlight-indentationで動いてくれるはず。デフォルトで有効にするのがいまいちうまくいかなかったんだけど、常時表示だとそれはそれでうっとうしい気もするのでまぁいいや。
で、ここからまたちょっと苦労したんだけど、表示されたはいいもののハイライトの色が僕の使ってる背景色といまいちマッチしなかったので変更したいなと思った。readmeとかコメント読んだだけじゃどういじっていいかわからなかったので全くの門外漢であるEmacs Lispのことを頑張って色々調べたら、
http://www.gnu.org/software/emacs/elisp/html_node/Defining-Faces.html
を参考にしてなんとか設定できた(このページもほとんど意味わからなかったけど)。
highlight-indentation.elの
'((t :inherit fringe))
を、
'((t :background "midnight blue"))
って感じに変えてやればよかった。("midnight blue"の部分に好きな色を入れる)
こんな風になります。