http://blog.glidenote.com
に移転しました

Trac WikiをVim上で編集する


社内で利用しているTracをVim上から編集出来たら楽だなーと思ってプラグインを探していたら、
VimTracという、そこそこ良いものがありました。

利用環境はTrac 0.12.2.ja1、Vim7.3です。

Trac側のXML-RPCプラグインを利用するので、もし未導入ならtrac xml-rpc – Google 検索などを参考にして導入してください。

VimTracの導入

VimTrac – A vim client for the Trac wiki and ticketing system : vim online

プラグインの管理にはVundleを利用しているので、.vimrcか.vimrc.localに下記のような設定を書いてBundleInstall。Trac-wikiマークアップ用プラグインも一緒に導入。

Bundle 'Trac-Wikimarkup'
Bundle 'VimTrac'
let g:tracServerList = {}
let g:tracServerList['strac'] = 'http://maeda:***********@192.168.25.37/trac/server/login/xmlrpc'
let g:tracServerList['ectrac'] = 'http://maeda:***********@192.168.25.37/trac/ec/login/xmlrpc'
let g:tracServerList['hostrac'] = 'http://maeda:***********@192.168.25.37/trac/hosting/login/xmlrpc'
let g:tracServerList['sharetrac'] = 'http://maeda:***********@192.168.25.37/trac/share/login/xmlrpc'

みたいな感じで設定。***********は自分のtracログイン時のアカウントです。設定の書式は

let g:tracServerList['(Server Name)'] = 'http://(user):(password)@(trac serverpath)/login/xmlrpc'

といった形式。社内Tracは部署ごとに分かれているので、

  • strac
  • ectrac
  • sharetrac

などと私はtracServerListを設定してます。接続するときに利用します。

trac.vimの修正

Vundle経由で導入すると、trac.pyのpathを見つけられないので、~/.vim/bundle/VimTrac/plugin/trac.pyを下記のように修正

@@ -132,10 +132,10 @@
     finish
 endif

-if filereadable($VIMRUNTIME."/plugin/trac.py")
-  pyfile $VIMRUNTIME/plugin/trac.py
-elseif filereadable($HOME."/.vim/plugin/trac.py")
-  pyfile $HOME/.vim/plugin/trac.py
+if filereadable($VIMRUNTIME."/bundle/VimTrac/plugin/trac.py")
+  pyfile $VIMRUNTIME/bundle/VimTrac/plugin/trac.py
+elseif filereadable($HOME."/.vim/bundle/VimTrac/plugin/trac.py")
+  pyfile $HOME/.vim/bundle/VimTrac/plugin/trac.py
 else
   call confirm('trac.vim: Unable to find trac.py. Place it in either your home vim directory or in the Vim runtime directory.', 'OK')
   finish

trac.vimの利用方法

Tracサーバに接続

tracServerListで設定した名前で接続

:TWServer strac
:TWServer ectrac


新規wikiページの作成

:TWCreate Common/Server/Memo/maeda


wikiページの保存

:TWSave "Comment"


既存wikiページを開く

:TWOpen Common/Server/Memo/maeda

Wikiページの一覧リストからも選択可能です。

ticket一覧を表示

tracServerListで設定した名前で接続

:TTServer strac
:TTServer ectrac

ticket一覧取得は、最初利用出来なかったのですが、XML-RPCのプラグインをXmlRpcPlugin – Trac Hacksの最新のものにして利用できるようになりました。


社内tracなので当たり障りのないページを開いた感じ

社内SNSでmizzyさんから

VimTracって、編集中に別な人がページ更新した場合に、マージできるのかな?

と聞かれたので、検証をしてみたところ何の警告もなく、上書きをしてしまいました!!
doc/trac.txt at master from mjbrownie/Trac.vim – GitHubを見ても特にconflictとかmergeとかは書いてないので、機能的にないぽいです。複数人で同時に編集するようなページで利用するでは要注意です。
公式ページhttp://www.ascetinteractive.com.au/vimtracも現在はリンク切れなので、情報はかなり少なめです。

今までブラウザからのWiki編集に慣れてしまっていたので、まだ違和感がありますが、Vimで完結出来るので使い勝手良いです。

BundleInstallすると

E122: Function LoadWikiCommands already exists, add ! to replace it

とかのエラーが出るけど、ちゃんとプラグインのインストールは出来てて、実害は無さそうなのでとりあえず放置で。

About

@glidenote

このブログは個人的なものです。ここで述べられている内容は私の個人的な意見に基づくものであり、私の雇用者に一切の関係はありません