続・Emacsでタブ・全角スペース・行末の空白文字列を目立たせる

以前、「Emacsでタブ・全角スペース・行末の空白文字列を目立たせる」という記事を書きましたが、その続報です。同じ事をするのにjaspace.elを使った方がいい感じに思えてきたので、紹介します。

jaspace.elというのは、おまけ for GNU Emacsで配布されているEmacs Lispです。jaspace.elの存在はEmacsでタブ・全角スペース・行末の空白文字列 – bobchinの日記で教わりました。ありがとうございます。

以前紹介したやり方に比べ、jaspace.elには下記のようなメリットがあります。

  • minor-modeなので、mode-lineがにぎやかになる
  • M-x jaspace-mode-offとするだけで、色が着いていない状態に簡単に戻せる
  • 空白文字に色を付けるだけでなく、任意の文字を重ねて表示させることもできる
  • M-x customizeで設定できる

実際にどんな感じかというと、下記のようになります。背景色が明るい場合と暗い場合とで設定してみました。

jasp-dark.png

jasp-light.png

全角スペースには「□」が、タブには「^」が重ねて表示してあります。タブは少々カッコ悪い気もするのですが、全角スペースは単に色がついているだけより断然見やすいですね。

設定方法ですが、jaspace.elを適切なディレクトリに配置した上で、.emacsにdotemacs-jaspace.txtの内容を貼付けてください。

一つ問題点があるとすれば、行末のスペース連続はjaspace.elでは対応していないということです。そこで、今回はframe.el(標準添付されています)の機能を用いて色をつけることにしました。私の現在の設定では特に問題は起きませんが、背景色とアンダーラインを組み合わせたりといった複雑な設定にすると一部の色が消える現象が起こりました。別の枠組みで色をつけると干渉するのでしょうか、ちょっと残念に感じました。

コメント / トラックバック 4 件

#1 ltakeshi 2008/08/30 20:54

行末のスペースに関しては、.emacsに以下のように書けば対応できるかと。
(when (boundp ‘show-trailing-whitespace) (setq-default show-trailing-whitespace t))

あと、全角スペースはかな漢字変換入力モードの時に半角スペースが入力されるようにしておけば、全角スペースを強調する必要すらなくなる気がします。ちなみにantyhでなら
(setq anthy-wide-space ” “)
でいけます。

#2 links for 2008-08-30 « 個人的な雑記 2008/08/31 07:31

[...] 続・Emacsでタブ・全角スペース・行末の空白文字列を目立たせる (tags: emacs tips) [...]

#3 hnw 2008/09/01 20:05

ltakeshiさん、コメントありがとうございます。実は、行末の空白文字列に関しては同じ方法で対応しています。(.emacsが長すぎてわかりにくいのですが、jaspace-mode-hookとjaspace-mode-off-hookで操作しています)

全角スペースなんか使わなければいい、というのはその通りだと思うのですが、他のプロジェクトメンバーの書いたコードや、場合によっては社外のコードを見ることもあるので、全角スペースを目立たせるのは有用だと思います。

また、私はMacOSXでことえりを使っているのですが、実はことえりで全角スペースを禁止にする方法がわかりません。やっぱりATOK買えってことですかね…。

#4 katokichi 2008/09/05 17:44

2chで読んだ内容でまだ試していないのですが、defaultsで書き換えられるようです。
(私はATOKを買ってから知りました・・・)
−−−−−−−−−−−
Leopard限定。
ことえりでスペースを半角に。
$ defaults write com.apple.inputmethod.Kotoeri zhsy -dict-add ” ” -bool false
再ログイン。(または killall Kotoeri)
trueで全角に。
−−−−−−−−−−−

だそうです。Googleで「使えるdefaults ことえり」でヒットしますので、御参考まで。

コメントする