この記事はVim Advent Calendar 2012の201日目の記事です。
前日は @IMAGEDRIVE さんの Vim Girl Ver 7.4(イラスト)を描いた でした。vim girlカワイイ。
今日の話題は、vimでjavaを書く際、import文を手軽に挿入するためのプラグイン unite-javaimport を作成しましたので、
そのプラグインを紹介させていただきます。
リポジトリ http://github.com/kamichidu/unite-javaimport
vimでjavaを編集しているときに、使いたいクラスがある度にファイル先頭まで戻ってimport文を記述するのが面倒でした。
現状、いくつかのプラグインはありましたが、気に入らなかったので作ってみました。
ちなみにまだアルファ版です。
unite-javaimportの概要
カレントディレクトリに.javaimport
というファイルを用意し、次のような形式で設定を行います。
すると、列挙したパスやurlから取得できる型名がuniteインタフェイス上に列挙されます。
# this is a comment
{
'path': 'path/to/directory',
'javadoc': 'http://url/to/javadoc/',
},
{
'path': 'path/to/jarfile',
'javadoc': 'http://url/to/javadoc/',
},
{
'path': 'http://url/to/javadoc',
'javadoc': 'http://url/to/javadoc/',
},
path
は必須、javadoc
は省略可能です。
javadoc
を省略した場合、javadocのプレビュー機能は使えません。
少々わかりにくいと思うので、画像を用意しました。
絞り込みからimport文の追加が行われる様子がわかると思います。
unite-javaimportのインストール
NeoBundleをお使いなら、.vimrc
に以下を書くだけです。
NeoBundle 'KamunagiChiduru/unite-javaimport', {
\ 'depends': ['Shougo/unite.vim'],
\}
javadocのプレビュー機能を使用する場合、w3m.vim
をdependsに追加してください。
unite-javaimportの問題点
- 非同期で候補取得をしていないので、初回実行時が遅い
unite-javaimportの依存関係
unite-javaimportの依存しているあれやこれを、以下に列挙します。
- unite.vim
- Exuberant Ctags 5.8 (他のctagsでも動くかも?未検証)
- java runtime environment (jre) 1.6以上
- wget or curl (javadoc取得に使用。またurlからの型名取得に使用)
- w3m.vim (uniteのプレビュー機能でjavadoc表示に使用。javadocの表示を行わない場合は不要)
unite-javaimportに追加したい機能
- static importを追加する
- javadocを参照しながら絞り込みする(preview機能を使用予定)
- 暫定的に実装しました。が、もう少し読みやすい形で出したいなぁこれ。
- .javaimportでの設定方法をより良い形にする
- yamlで設定するようにしてみた。設定方法を本記事に追記しました。
- filetypeがjavaの場合にのみ、unite-sourceとして登録する(補完候補に出す)
- Shougoさんからこういった機能はないと回答を頂きました。
(他に何かあるかな?)
最後に
unite-javaimportという自作プラグインをご紹介しました。
これでeclipseを使わなければいけない理由が1つ減ったと思います。
javaをvimで開発するためのプラグインは、後は補完周りかなぁ。
pullreqやissuesお待ちしています!
以上でvim advent calendar 2012の201日目の記事を終わります。
ここまでお付き合いいただきありがとうございました。