zshのvcs_infoのhookを利用してsvn stを表示する

こんにちは、河野です。

zshのvcs_infoはとても便利ですが、svnだとgitのように豊富に情報が出ないので、hookでがんばってみます。

出力内容の調整

現在の状態はこんな感じです。

このstatusをプロンプトで確認できるようになると、便利ですよね。
出力を 記号:数 にするために、awk で整形します。

こんな感じです。とりあえずfunctionにしておきます。

vcs_infoのhookの設定

作ったfunctionをhookに設定します。

svnの場合、stagedやunstagedの情報は取得できませんが、値の設定ができるようです。強引ですが、unstagedにcount_svn_stで取得した情報を入力しています。出力フォーマットはformatsで指定して、色はとりあえず赤にしてみました。

hookで呼び出すfunctionは+vi-というprefixを付ける必要があります。

プロンプトに出力

vcs_infoで設定された情報をプロンプトに出力します。

vcs_info_msgを更新する _update_vcs_info_msg と、プロンプトを更新する _update_prompt の2つのfunctionがあって、これは以前から使っているものを修正しています。

完成です!

実際の表示は以下のようになります。

prompt

これだけだと、サーバー側の更新がわからないとか、awkを都度実行してるのもどうなんだとか、もう少し調整できそうですが、全く分からないよりはマシなので、これでしばらく良いかなと思います。

参考:zsh の vcs_info に独自の処理を追加して stash 数とか push していない件数とか何でも表示する - Qiita [キータ]

Comments are closed, but you can leave a trackback: Trackback URL.