スキップしてメイン コンテンツに移動

投稿

2月, 2011の投稿を表示しています

vimスクリプトのuniteでsvn statusとsvn diffするsource書いた

書きました。
普段使い用に自己満足化した状態で作ってしまっているので、
必要だろうと思われる設定や機能等、教えていただけるとありがたいです。
更には“既にもっと便利なプラグインあるよ!”みたいなのもあれば教えていただけると助かります。

使い方は unite.vim を入れた上で、autoloadディレクトリをマージしてもらえればいけると思います。

そもそも Unite とは、emacsのanythingプラグインと似た感じの動作をするvimのプラグインです。すばらしいですね!

Uniteを開発されているShougoさんのリポジトリ(github):https://github.com/Shougo/unite.vim

ということで僕が書いた駄ソースは以下になります。

https://github.com/kmnk/vim-unite-svn

svn/statusに対してsvnコマンドを実行するactionを拡張していますが、ベースは jump_list なので特に違和感は無いと思います。
拡張しているのは以下のコマンドです。


複数選択可

commit
add
revert
delete
diff




複数選択不可

blame
log




以下、簡単な動作説明


Unite svn/status すると


簡単な一覧が出ます。


Tabでメニューを出して add と打って実行すると


svn addされてステータスが変わります。


複数ファイルの場合もスペースでマークして


Tabでメニューを出して commit と打って実行すると


コメント入力画面になるので(普段使わないので -m 対応してないです)、記述して:wqで


コミットされます。


適当に編集すると差分が発生するので



選択して diff と打って実行すると


Unite svn/diff:{file name 1}:{file name 2}:... が実行された結果が出るので、見たい行を選択して Enter を押すと


デフォルトの open が動作して対象ファイルの対象行に飛びます。

一部を選択して操作するのが若干簡単になるかもしれません。

特に今のところ status と diff に関してはこれで困ってないので他により便利なsourceが見つかったりしなければ、次は blame を書こうと思います。

追記(11/02/12 23:22):
書きました。
blame差分

大き目のブランチで試していな…