Emacs のカッコの色を抵抗のカラーコードにしてみる


チップ抵抗全盛のこの時代、
カラーコードを覚えててもなかなか使いどころがなくなってきました。

そこで、こんな使い方はいかがでしょうか。

インストール

カッコを色付けするrainbow-delimiters.elを入れます。
Emacs24以降なら下記で完了です。

M-x package-install rainbow-delimiters

設定

下記をinit.elに書きます。

(require 'cl-lib)
(require 'color)

(rainbow-delimiters-mode 1)
(setq rainbow-delimiters-outermost-only-face-count 1)

(set-face-foreground 'rainbow-delimiters-depth-1-face "#9a4040")
(set-face-foreground 'rainbow-delimiters-depth-2-face "#ff5e5e")
(set-face-foreground 'rainbow-delimiters-depth-3-face "#ffaa77")
(set-face-foreground 'rainbow-delimiters-depth-4-face "#dddd77")
(set-face-foreground 'rainbow-delimiters-depth-5-face "#80ee80")
(set-face-foreground 'rainbow-delimiters-depth-6-face "#66bbff")
(set-face-foreground 'rainbow-delimiters-depth-7-face "#da6bda")
(set-face-foreground 'rainbow-delimiters-depth-8-face "#afafaf")
(set-face-foreground 'rainbow-delimiters-depth-9-face "#f0f0f0")

;; 使いたいモードはお好みで
(add-hook 'emacs-lisp-mode-hook 'rainbow-delimiters-mode)
(add-hook 'c-mode-hook 'rainbow-delimiters-mode)

実用的?

カラーコードに馴染んでいれば、カッコの色で直感的にネストの深さがわかるので実用的に感じました。

ちなみに、上の設定のように rainbow-delimiters-outermost-only-face-count1にしておくと、10個目以降のカッコを色づけが茶色を飛ばして 灰 白 赤 橙 黄 …となります。

こうしておくと、ネストの深い関数であっても茶色のカッコは常に関数の先頭/末尾を表すので、長いコードを読むときは便利かもです。

もし、1番の茶色と3番のオレンジが紛らわしい場合は、1番の茶色と9番の白あたりを入れ替えてみるといいかもしれません。

参考

抵抗のカラーコード(抵抗値)の読み方
Adobe Color CC カラーホイール
rainbow-delimiters.el の括弧の色を強調する方法 (たぶん) 決定版