ずいぶん前につくった unite-script が、先日リリースされた Unite.vim の ver 6からscript sourceとして本体に取り込まれました。今後は、別にunite-scriptをインストールすることなく、script sourceが利用できます。
unites-scriptはずいぶん長い間メンテナンスが滞っていて、ご迷惑をおかけしていたのですが、今後は本体機能として安心してご利用いただけます。取り込みなどほとんどの作業は、Unite.vimの作者の@Shougo さんにやっていただきました。ありがとうございました!!
そもそも、unite-scriptは、unite.vim の source をお好きなスクリプト言語で書ける unite-script - はこべブログ ♨ という記事ではじめて登場した、Unite.vimのsourceの1つです。自由なスクリプトを実行し、その実行結果をUnite.vimに表示してアクションを実行できます。
例えば、以下の様なスクリプトを準備することで、Githubの通知をvimから表示することができます。
このscriptを実行すると以下のように、項目名と、選択されたときのアクションがTAB区切りで一行ごとに標準出力に表示されます。この場合はgithubからの通知の内容と、スクリプト自身にURLを渡して起動するアクションがTAB区切りで一行ごとに表示されています。
$ ruby /path/to/github-notify.rb list [htmlcatgo Issue] 色付けに対応 call unite#util#system('ruby /path/to/github-notify.rb open https://api.github.com/repos/hakobe/htmlcatgo/issues') [unite-script-examples Issue] CPANモジュール依存を取り除く call unite#util#system('ruby /path/to/github-notify.rb open https://api.github.com/repos/hakobe/unite-script-examples/issues/7') [unite-script-examples Issue] 売りになりそうなおもしろいscriptを思いつく call unite#util#system('ruby /path/to/github-notify.rb open https://api.github.com/repos/hakobe/unite-script-examples/issues/6')
このスクリプトをUnite.vimのscript sourceで利用するには以下のようなコマンドを実行します。
:Unite script:ruby:/path/to/github-notify.rb list
これで 以下のようにvimからGithubの通知を確認できるようになりました。自分のPullRequestのレビューが進んだかどうかなどがvimからすぐに確認できるので大変便利です。
このスクリプトを動作させるには、~/.unitescriptrcにyamlで設定を記述する必要があります。くわしくはscript内のコメントを御覧ください。Github Enterpriseにも対応しています。
こういう調子で、仕様にしたがって出力を組み立てるだけで、いろいろなものをUnite.vimに表示できて便利です。ぜひお試しください。これまで公開されていた以下のようなスクリプトも利用できます。(ありがとうございます > 公開いただいていた方々)
- Unite.vimでChromeのブックマークを表示するスクリプトを作った · THINKING MEGANE (monochromeganeさん作)
- unite-script使って unite-script-favstar(python) してみた - mizchi log (mizchiさん作)
- bookmarks.pl はてなブックマークの人気エントリをUnite.vimで表示/アクセス
- gmail.pl Gmailの受信箱のメール一覧を表示/アクセス
- itunes.pl iTunesで現在再生しているプレイリストの曲を一覧/再生(Mac用)
script sourceがUnite.vimで利用できることになったのに伴い、unite-scriptのリポジトリはunite-script-example として、script source用の便利なスクリプトをあつめるリポジトリにしましたので、おもしろscriptができましたらぜひPull Requestしてみてください。
個人的には itunes.pl が便利で気に入ってます。(Macでしか使えません)
どうぞご利用ください。
2014/02/14 追記
Shougoさんから教えていただいたところによりますと、Unite.vimのscript sourceに指定できるコマンドは、vimのruntimepathからの想定パスで指定できるそうです。
ですので、.vimrcに
NeoBundle 'hakobe/unite-script-examples'
のように書くと、.vim/bundle/unite-script-examplesがruntimepathにはいるので、.vim/bundle/unite-script-examples/examplesにはるスクリプトを以下のように利用できます。
:Unite script:ruby:examples/github-notify.rb
パスの解決をする必要がなくて、大変便利ですね。