3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

unite-javaimportというプラグイン書いた。

Last updated at Posted at 2013-06-17

この記事は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インタフェイス上に列挙されます。

.javaimport
# 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文の追加が行われる様子がわかると思います。

1.png

2.png

3.png

4.png

unite-javaimportのインストール

NeoBundleをお使いなら、.vimrcに以下を書くだけです。

.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日目の記事を終わります。
ここまでお付き合いいただきありがとうございました。

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?