読者です 読者をやめる 読者になる 読者になる

unite-scriptがUnite.vim本体に取り込まれました

ずいぶん前につくった 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からすぐに確認できるので大変便利です。

f:id:hakobe932:20140220213732p:plain

このスクリプトを動作させるには、~/.unitescriptrcにyamlで設定を記述する必要があります。くわしくはscript内のコメントを御覧ください。Github Enterpriseにも対応しています。

こういう調子で、仕様にしたがって出力を組み立てるだけで、いろいろなものをUnite.vimに表示できて便利です。ぜひお試しください。これまで公開されていた以下のようなスクリプトも利用できます。(ありがとうございます > 公開いただいていた方々)

script sourceがUnite.vimで利用できることになったのに伴い、unite-scriptのリポジトリはunite-script-example として、script source用の便利なスクリプトをあつめるリポジトリにしましたので、おもしろscriptができましたらぜひPull Requestしてみてください。


個人的には itunes.pl が便利で気に入ってます。(Macでしか使えません)

f:id:hakobe932:20140220210614p:plain

どうぞご利用ください。

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

パスの解決をする必要がなくて、大変便利ですね。