viでJava開発:Javaのためのvi設定方法

Ryan Brase(Builder.com) 翻訳校正:原井彰弘
2007-12-19 14:20:01
  • このエントリーをはてなブックマークに追加
最新特集【一覧】

 エディタ「vi」は、Javaアプリケーションの開発環境としては用いられないことも多い。しかし、VimとAntを利用すれば、Javaの開発に適した環境に設定することが可能である。ここでは、次のJavaプロジェクトですぐに利用できるように、viのカスタマイズ手順を紹介しよう。

 多くのソフトウェア技術者は、キャリアの中で一度はviエディタを使うことがある。それは、大学生のときかもしれないし、Windowsのデスクトップで高性能IDEを用いてコーディングしたソフトウェアを、製品版のUNIXマシンにインストールするときかもしれない。MicrosoftとべったりのIT企業の開発者でもない限り、最低でも月に一度はみなviを起動するだろう。viを熱狂的に愛している人がいる一方で、ひどい嫌悪感を抱いている人も多いということも事実である。しかし、たくさんカスタマイズをすれば、viはJava開発者にとってよりよい開発環境になる。

 viはJavaの開発にはふさわしくないと感じている人も多いだろう。viが機能を最小限に抑えることを美徳としている一方で、Javaは巨大で不格好な獣にも例えられる。そのため、viをメインの作業環境に選択するJava開発者はごく少数かもしれない。しかし、ときどき使用する程度のviユーザであっても、設定に少しの時間を割きさえすればviはよりJavaフレンドリーになり、利益を享受することができるのである。この記事を読んで、IDEの機能の多くがviでも実現できることを知れば、あなたはショックを受けるだろう。

開始するには

 まず、使用しているマシンでviコマンドがvimのバイナリを起動するようになっていることを確認して欲しい。それはシンボリックリンクであっても、エイリアスであっても構わない。vimは「Vi IMproved」を意味し、オリジナルのviやviのクローンよりも、ほぼすべての面において高性能なviである。vimは高速であり、メンテナンスもなされており、高機能であり、そしてほとんどのプラットフォームで動作するのだ。

 vimのインストールが完了したら、ホームディレクトリに.vimrcという名前のファイルを作成して欲しい。以下に、最初に記述するコードを示す。

set sm
set ai
syntax on
let java_highlight_all=1
let java_highlight_functions="style"
let java_allow_cpp_keywords=1

 このファイルに含まれているコードを読み込むと、viはJavaのソースコードを色分けし、読みやすく表示する。ここでは、このコードの意味はそれほど重要ではない。もし色分けの結果が気に入らなければ、削除してしまっても何も問題はない。

タグジャンプのサポート

 タグとはJavaの識別子のことであり、パッケージ名やクラス名、メソッド名、フィールド変数名を表す。ソースコード内のすべてのタグを含んだ巨大なインデックスを作成することにより、一回のキーストロークですべてのクラスやメソッド、フィールド変数の定義へジャンプできるようになるのだ。このインデックスファイルは、vimのディストリビューションに含まれているctagsというプログラムを用いて作成できる。

 ctagsは、Javaソースファイルやディレクトリのリストを受け取って、識別子の情報を抽出や並べ替えを行い、タグのジャンプに用いるインデックスを作成する。以下のサンプルコードを実行すると、自分のプロジェクトとSunのコアライブラリのソースコードを読み込み、その中に含まれている識別子すべてをもとにタグファイルを作成する。なお、以下のコードでは、JAVA_HOME変数が正しく設定されていることが前提である。

ctags -f ~/.tags -R ~/myprojects/src $JAVA_HOME/src

 タグインデックスの作成が終了したら、あとはviにその場所を教えるだけでよい。方法は、~/.vimrcファイルにset tags=~/.tagsを一行加えるだけだ。タグのインデックスファイルが完成してviがその場所を把握すると、[Ctrl] ]を押すだけでどの識別子へもジャンプできるようになる。自分で書いたコードのメソッドやクラス、フィールド変数にジャンプできるだけでも便利ではあるが、Javaのクラスライブラリもインデックスファイルに含めておくと、さらに使い勝手がよくなる。クラスライブラリのクラスやメソッド上で[Ctrl] ]を押すだけで、その定義とJavadocへ簡単にアクセスできるのだ。

タグ名の補完

 クラスやメソッド、フィールド変数の定義にジャンプする機能は、Javadocを読んだり定義の内部を調べたりする際には便利である。しかし、それよりもずっと多くの場面で必要とされるのは、キーワードの定義をただ単にチェックする機能だろう。多くのIDEでは、この機能はキーワードをタイピングすることによって実現されている。しかし、前の節で説明したとおりにタグファイルのセットアップを行っていれば、viでも設定を変えるだけでキーワードの補完を行えるようになる。

 クラスやメソッド、フィールド変数を自動的に補完する機能を有効にするには、~/.vimrcファイルにset complete=.,w,b,u,t,iという行を加えればよい。すると、挿入モードのときに[Ctrl] Nを押すだけで、補完が行えるようになる。このとき、連続して[Ctrl] Nを押すと、マッチした候補が順番に表示される。目的のタグが見つかったら、ソースコードの続きを入力すれば補完が完了する。その他のタグの補完に関するTipsは、vimのウェブサイトを参照して欲しい。このサイトには、Tabキーを補完に用いる方法などが掲載されている。

  • 新着記事
  • 特集
  • ブログ