2011-12-09
Emacsをちょっとだけ自分色に染める (Emacs Advent Calendar jp: 2011)
この記事は Emacs Advent Calendar jp: 2011 : ATND の9日目です。遅くなってごめんなさい!
去年にひき続いて標準で少しEmacsを便利にする小技を。
Emacsを使ってて普段使ってるmodeにちょっとだけ色を足したいとか思うことはないですか?そんなときは font-lock-add-keywords を使えば好きな色を足すことができちゃいます。
使い方は簡単。例えばこんな風にすると
(font-lock-add-keywords 'c-mode '(("!" . font-lock-warning-face)))
c-modeで「!」が赤くなります。数字にも色を付けて、hogeをキーワードの色にしたければこんな風に。
(font-lock-add-keywords 'c-mode '(("!" . font-lock-warning-face) ("hoge" . font-lock-keyword-face) ("[0-9]+" . font-lock-constant-face)))
そうするとこうなります。
ただこの font-lock-add-keywords には弱点があって。間違った設定とかにしてしまうと、ハイライトを壊して元に戻せなくなってしまうのです。
というわけで、font-lock-user-keywords というものを作って使ってます。この子なら壊したときにも簡単に戻すことができるから安心です。
(defun font-lock-user-keywords (mode &optional keywords) "Add user highlighting to KEYWORDS to MODE. See `font-lock-add-keywords' and `font-lock-defaults'." (unless mode (error "mode should be non-nil ")) (font-lock-remove-keywords mode (get mode 'font-lock-user-keywords)) (font-lock-add-keywords mode keywords) (put mode 'font-lock-user-keywords keywords))
設定するときは font-lock-add-keywords と同じように使うだけ。リセットするときは (font-lock-user-keywords 'c-mode) として呼んであげれば元に戻ってくれます。ただ、font-lock-add-keywords で足したものは戻らないのでそこは注意して使ってくださいね。
明日は @ta2_o2p さんです。それでは。
トラックバック - http://d.hatena.ne.jp/buzztaiki/20111209/1323444755
リンク元
- 227 http://atnd.org/events/21982
- 21 http://reader.livedoor.com/reader/
- 13 http://t.co/yE7x4zCF
- 12 http://d.hatena.ne.jp/peccu/20120102/emacsadventjp
- 11 http://inputxoutput.com/29/
- 11 http://www.google.com/reader/view/
- 9 http://t.co/WmdVj3AQ
- 9 http://www.google.co.jp/url?sa=t&rct=j&q=font-lock-add-keywords&source=web&cd=18&ved=0CFsQFjAHOAo&url=http://d.hatena.ne.jp/buzztaiki/20111209/1323444755&ei=UtUMT6qQCZGXmQXVpYCABg&usg=AFQjCNEeQAIGnxSrJXPPaz3amtYxAH6GuQ
- 8 http://t.co/0XpG5YpI
- 8 http://www.google.co.jp/reader/view/

