Hatena::ブログ(Diary)

Heavens hell

2012-02-18

[] Gundo.vim が便利

Vim では入力したものを元に戻す/やりなおす(undo/redo)が当然できる。

更に undo した所から枝分かれ(ブランチ)が出来たりする。

例えば

first
second
third
four

と入力して、最後に undo し、four を fourth と変更し、:undolist と入力すると

通番   変更数   変更時期           保存済
     4       4  10:54:02
     5       4  10:56:00

と表示する。


ただし undolist だけではどこから枝分かれしたのかが分かりにくい。

そこで Gundo.vim というプラグインを使うと undo の履歴、変更箇所の diff が見えるようになる。

 @  [5] 36 minutes ago
 |
 | o  [4] 37 minutes ago
 |/
 o  [3] 38 minutes ago
 |
 o  [2] 38 minutes ago
 |
 o  [1] 38 minutes ago
 |
 o  [0] Original

こんな感じで表示され、o の所にカーソルを移動すると変更箇所が diff として表示される。

詳しくは以下のサイトで。


とても便利だが唯一の欠点が履歴のパネルのツリー間の移動がもの凄く遅い。

原因は移動と共に diffプレビューを呼んでいてそれが遅い。

特に開発をしている間に undolist が溜まって行くと遅さが顕著になる。


なので移動と同時にプレビューをしないというオプションを付けた。

heavenshell / gundo.vim / overview — Bitbucket

let g:gundo_auto_preview = 0

とすると、移動とともにプレビューしない。

ではどうやって diff を見るかというと履歴パネルで 'r' を押すとプレビュー表示するようになる。

これで大分サクサク移動できるようになる。

# デフォルトプレビュー表示をする


この変更を作者に pull request してみたが現時点で取り入れるのに否定的っぽい。

自分のリポジトリにアップしてあるし困る事はないけど、やっぱりメインの方に取り入れて欲しい。

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証

トラックバック - http://d.hatena.ne.jp/heavenshell/20120218/1329532535