オペレータが入力されたら相対行番号を表示

Yokohama.vimの行削除のスライドみてて、オペレータが入力されたら、その行から相対的行番号を一時的に左側に表示すればいいんではないかと思った。Vimスクリプトでそんなことできるかどうかは知らんけど。

https://twitter.com/m2ym/status/25606822787

という話があったので, Vimpulseでやってみた.

必要なもの

設定

.emacsのどこかで以下のようにする.

(require 'vimpulse)
(require 'linum+)
(add-hook 'vimpulse-operator-state-hook 'relative-linum-mode)
(add-hook 'pre-command-hook '(lambda () (relative-linum-mode -1)))
(add-hook 'post-command-hook '(lambda () (relative-linum-mode -1)))

感想

Vimだとどうやるのか(やれるのか)知らないけれど, Vimpulseだと簡単すぎて吹いたw 元々相対行番号表示のためのマイナーモードを作ってあったというのも大きいけれど.

あと実際使ってみるとddとかしたときに, ちらっと表示されて結構うざい(ので0.3秒待ってから表示するようにした:追記).

追記

2010-09-27T05:31+0000
  • 画像を追加
  • C-gとかしたときにおかしいので設定を修正
2010-09-28T03:23+0000
遅延を挟むようにしてプラグイン
http://github.com/tarao/vimpulse-plugins/blob/master/vimpulse-relative-linum.el