10
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

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

Last updated at Posted at 2018-08-11

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

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

screenshot_03.png

インストール

カッコを色付けする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 の括弧の色を強調する方法 (たぶん) 決定版

10
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?