[Emacs] linum.el で左側に行番号を表示する

ついでにもうひとつ.

今まで,Mode Line に表示する,line-number-mode で十分だったからそのままにしてたけど,そろそろ横に表示してもいいかと思って探してみた.

他所様の作ったものを使うしかない模様。Webを漁ってみると、どうも有名どころとして3つあるみたい。

* wb-line-number.el
* setnu.el(&setnu+.el)
* linum.el

selflearn @ ウィキ - 秀丸からEmacsへ移行する

ということですが,

そこでsetnu.elを調べてみると、これは・古い、・バグが多い、・修正版として用意されたsetnu+.elがリンク切れ、というように全然使えなかったのでパス。
結局、最後のlinumが一番シンプルで良かったのでこれを使うことにした。使い方はsetnu.elとほぼ同じ。

selflearn @ ウィキ - 秀丸からEmacsへ移行する

とのことなので,自分も Linum を使うことにした.

でも,素の状態だと気に食わないかったので少し表示を変えてみました.

最低幅を確保した上で,常に右寄せで行番号を表示させてます.(min-w 4) の 4 を変えれば最低幅が変わります.

以下がその設定です.

lisp があまりわからないので汚いです^^; だれかきれいにしてください(>_<)

(require 'linum)
(setq linum-format
      '(lambda (line)
        (let ((fmt
               (let ((min-w 4)
                     (w (length (number-to-string
                                 (count-lines (point-min) (point-max))))))
                 (concat "%"
                         (number-to-string (if (< min-w w) w min-w))
                         "d"))))
          (propertize (format fmt line) 'face 'linum))))
(global-linum-mode)