読者です 読者をやめる 読者になる 読者になる

計算物理屋の研究備忘録

Linux, Cygwin, Mac, zsh, emacs等の使い方、設定などのメモ

Emacsでtab文字や行末の空白の可視化

whitespace-mode

whitespace-modeというのを使えばtab文字、空白、行末の空白、全角空白、先頭末尾の空行などを可視化できるようになる。不要なスペースや改行を自動で削除する機能もあるようだが、それは使わずに、可視化だけできるようにしてみる。

基本的には以下のサイトを参考にする

whitespace-modeを使って、ファイルの保存時に行末のスペースや末尾の改行を削除する - Qiita

とりあえず可視化

init.el

;;
;; whitespace
;;
(require 'whitespace)
(setq whitespace-style '(face           ; faceで可視化
                         trailing       ; 行末
                         tabs           ; タブ
;;                         empty          ; 先頭/末尾の空行
                         space-mark     ; 表示のマッピング
                         tab-mark
                         ))

(setq whitespace-display-mappings
      '((tab-mark ?\t [?\u00BB ?\t] [?\\ ?\t])))

(global-whitespace-mode 1)

このように設定しておくと

  • 行末
  • タブ
  • 先頭/末尾の空行

が可視化される。全角空白を含めると表示が崩れたのではずしてある。全角空白はRicty Diminishedというフォントを使っているので何もしなくても表示してくれる。

2016年4月10日 更新
先頭/末尾の空行はコメントアウトして外した。これに色をつけると少しうっとうしい。行番号を表示するようにしておけば空行があるかないかは確認できる。

色の設定

色の設定はlist-faces-displayを使って行う。

$ M-x list-faces-display

whitespace-modeが有効になっていると*Faces*バッファの最後のほうに whitespace-xxxxxxxx というのが並ぶので

  1. whitespace-trailingにカーソルを合わせてEnter (行末の空白の色設定)
  2. Show All Attributesにカーソルを合わせてEnter
  3. [ ] Underline:にカーソルを合わせるとアンダーラインの設定ができるようになる
  4. [Value Menu]をon
  5. Color: [Value Menu] Foreground Color
    Style: [Value Menu] Line
    に設定
  6. [x] Foregroud:を好きな色に変える。magentaにしておいた

同様にしてタブ文字(whitespace-tab)と空行( whitespace-empty)の色を設定してこんな感じに

f:id:keisanbutsuriya:20150203153100p:plain