whitespace-modeの設定
anthy.elでは全角スペースを打てなくする設定があったんですが、
mozc.elではそのような設定がなかったため、全角スペースが目立つ
ようにしたいって思いました。
Emacs23からは不可視な文字を表示するための whitespace-modeって
いうのがあるみたいなので、それを使えばいいじゃん、ってことで
使ってみたんですけど、デフォルトの設定ではありとあらゆる不可視
文字を見えるようにしてしまってかえって見づらいです。
設定についてもいいのがねぇ、って思っていたんですが、いいのが
見つかりました。scala-mode.elのインデントの挙動を改善する, .emacsまとめ(1) - 継続にっき(2010-11-06)です。
これをベースに自分の好みに設定してみました。
設定は以下のとおりです。
;; for whitespace-mode (require 'whitespace) ;; see whitespace.el for more details (setq whitespace-style '(face tabs tab-mark spaces space-mark)) (setq whitespace-display-mappings '((space-mark ?\u3000 [?\u25a1]) ;; WARNING: the mapping below has a problem. ;; When a TAB occupies exactly one column, it will display the ;; character ?\xBB at that column followed by a TAB which goes to ;; the next TAB column. ;; If this is a problem for you, please, comment the line below. (tab-mark ?\t [?\xBB ?\t] [?\\ ?\t]))) (setq whitespace-space-regexp "\\(\u3000+\\)") (set-face-foreground 'whitespace-tab "#adff2f") (set-face-background 'whitespace-tab 'nil) (set-face-underline 'whitespace-tab t) (set-face-foreground 'whitespace-space "#7cfc00") (set-face-background 'whitespace-space 'nil) (set-face-bold-p 'whitespace-space t) (global-whitespace-mode 1) (global-set-key (kbd "C-x w") 'global-whitespace-mode)
タブと全角スペースのみ見えるようにしています。半角スペースや改行は
そのままです。参考サイトのものではあんまり目立たなかったので、
タブにアンダーラインを引き、全角スペースはボールドで強調してます。
めでたしめでたしと思ったんだけど、whitespace-modeを onにすると
スクロールがもっさりします。特にタブが多用されるカーネルソースでは
いらいらするだけなので、簡単に有効無効を切り替えられるように、
キーを割り当てました。基本的には使わなくて、編集時のみ使うような
感じにしようと考えています。
追記
Emacs 23.3から whitespace-styleに faceを追加しないと
強調表示はされますが、色がつきません。23.3を使っている人は
若干注意が必要です。