handlename's blog

コード片など

linum-modeの余計な余白をなくす方法

自分の環境(MacOSX 10.6、Emacs23、linum-mode 0.9x)でlinum-modeを有効にすると、 余計な余白が入る。 ターミナルで起動すると症状は出ない。

f:id:handlename:20100515121323p:image

これを解消するために、linum-mode.elの160行目を次のように書き換えた。

; (setq width (max width (length str)))
(setq width (max width (/ (length str) 2)))

そうするとこうなる。

f:id:handlename:20100515121324p:image

行番号がはみ出して見切れてしまう場合は、 .emacsにlinum-formatに適当な値を設定する。

(setq linum-format "%4d")

この方法だとターミナルで起動したときに行番号が表示されなくなってしまうが、 おそらくターミナルで使うことはないのでこれでよしとする。

2010/05/16 1:09 追記

余計な余白が入る理由は、どうやらフォント設定による模様。 フォント設定を、

(set-fontset-font
 (frame-parameter nil 'font)
 'japanese-jisx0212
 '("M+2VM+IPAG circle" . "iso10646-1"))
(set-fontset-font
 (frame-parameter nil 'font)
 'mule-unicode-0100-24ff
 '("M+2VM+IPAG circle" . "iso10646-1"))
(setq face-font-rescale-alist
      '(("^-apple-hiragino.*"                . 1.3)
        (".*osaka-bold.*"                    . 1.2)
        (".*osaka-medium.*"                  . 1.2)
        (".*courier-bold-.*-mac-roman"       . 1.0)
        (".*monaco cy-bold-.*-mac-cyrillic"  . 0.9)
        (".*monaco-bold-.*-mac-roman"        . 0.9)
        ("-cdac$"                            . 1.3)))

から、

(set-fontset-font
 (frame-parameter nil 'font)
 'mule-unicode-0100-24ff
 '("M+2VM+IPAG circle" . "iso10646-1"))

に変更したら問題なく表示されるようになった。 おまけにずれまくってたauto-complete-modeの補完候補もきれいに表示されるようになった。 コピペ元が間違ってたのかな…・。