web-dev-qa-db-ja.com

VimをJava IDEとして使用するためのヒントは?

私はVimにはまっていますが、今ではテキストファイルを編集する私の事実上の方法です。

IDEではなく主にテキストエディタであるということで、誰かがJavaアプリを開発するときにそれを簡単にするためのトリックを持っていますか?

私が持っているいくつかの質問:

  • Viを終了せずにMavenタスクを呼び出すにはどうすればよいですか?
  • コード補完を取得できますか?
  • 構文の強調表示はどうですか?

知っておくべきこと(「やらないで!」以外)

192
Allain Lalonde

いくつかのヒント:

  • 必ずvimを使用してください(viの改善)。 LinuxおよびUNIXの一部のバージョンはviからvimへのシンボリックリンクを作成します。
  • eclim でコード補完を取得できます
  • または、Eclipseで viPlugin を使用してvi機能を取得できます。
  • 構文の強調表示はvimで素晴らしい
  • Vimは、ant/- maven buildsの実行のような小さなマクロの作成を適切にサポートしています。

楽しんで :-)

74
toolkit

私は長年Vimユーザーです。私は時々Eclipseを起動することに気づき始めています(viプラグインを使用すると、さまざまな問題が発生します)。主な理由は、Javaビルドにはかなり時間がかかることです...そして、mavenのような高度にコンポーネント化されたビルドフレームワークを追加することで、ますます遅くなっています。そのため、変更の検証にはかなり時間がかかる傾向があり、私にとっては、後で解決しなければならないコンパイルの問題が山積みになり、コミットメッセージのフィルタリングに時間がかかることがよくあります。

コンパイルの問題のキューが大きくなりすぎたら、Eclipseを起動します。これにより、変更点を簡単に作成できます。使用するのは遅く、残忍で、Vimほどエディタのニースほどではありません(私は10年近くVimを使用しているので、私にとっては2番目の性質です)。特定のバグを修正する必要がある、特定のロジックをリファクタリングする必要があるなど、正確な編集が必要です... VimでできるほどEclipseで編集するのは効率的ではありません。

また、ヒント:

:set path=**
:chdir your/project/root

これにより、クラス名の^wfは、大規模なプロジェクトをナビゲートするための非常に素晴らしい機能になります。

とにかく、スキニーは、多くの新しいコードを追加する必要があるとき、コンパイルの問題などを追いかけるのに時間を費やしただけで、Vimは遅くなるようです。ただし、特定のソースを見つけて編集する必要がある場合、Eclipseは大ハンマーのように感じます。 Vimの魔法のIDEをまだ待っています。私が知っている3つの主要な試みがありました。多くの機能を追加する純粋なviml IDEタイプのプラグインがありますが、使用できないようです。 eclimがありますが、これには多くのトラブルがありました。また、Vimを実際に埋め込むEclipse用のプラグインがあります。最後の1つは、真に深刻なJava EEの作業にとって最も有望と思われますが、Eclipseのすべての機能と組み込みVimを実際に統合することはうまくいかないようです。

大規模なIDEプロジェクトで作業している場合、キーストロークで欠落しているインポートを追加したり、入力の問題でハイライトコードを追加するなどのことは、Javaから非常に貴重であるようです。

30
Scott McCoy
  • viを終了せずにMavenタスクを呼び出すにはどうすればよいですか?

    Mavenは他のシェルコマンドと違いはありません。

    :!mvn

    :set makeprg=mvnのお気に入りのキーマッピングが既にある場合は、:makeを使用できます。

  • コード補完を取得できますか?

    はい、 eclim は素晴らしいです。vimの編集効率とEclipseのJava言語固有の認識の橋渡しをします。

    <C-n><C-p>はそれほど優れていませんが、驚くほど役立ちます。

  • 構文の強調表示はどうですか?

    正規表現ベースのハイライガーには十分すぎるほどです。

コードテンプレート(- snippetEm —デフォルトのスニペットは吸うが、カスタマイズ可能性が高い)、使用法を検索して宣言(eclim、grep、ctags)に行くなど、他のvim + Java目的のツールを検討することもできます。ゲッターとセッターの生成( Java_getset 、またはeclim)、自動インポート(eclim)。また、簡単な実験のためにJavaシェルが必要になる場合があります( BeanShell 、別名bsh)。

22
ngn

Java Mavenプロジェクトの開発用に このVimプラグイン をアップロードしました。

まだハイライトを設定していない場合は忘れないでください:

enter image description here https://github.com/sentientmachine/erics_vim_syntax_and_color_highlighting

9
ikky

次の要約が非常に有用であることがわかりました: http://www.techrepublic.com/article/configure-vi-for-Java-application-development/5054618 。 :makeの説明は、mavenではなくant向けでしたが、それ以外はNice要約です。

8
Kevin

私はこれがかなり数年後であることを知っていますが、ここにいくつかの興味深いプラグインがあります。私はこれらのいずれもまだ試していませんので、YMMV。

https://github.com/mikelue/vim-maven-plugin

https://github.com/vim-scripts/maven-ide

編集:ああああ、私はeclimを何度も試しましたが、vimが好きな理由はその軽さです。ヘッドレスモードでもEclipseを実行することは、私にとって精神的な負担になりすぎます。

EDIT2:私は最近playframeworkを使用していますが、これはおそらくMavenビルドでも動作します:

  • コンパイルのために、VIMのmakeを構成してmavenを実行するか、私の場合はビルドスクリプトを実行して、それをファイルにティーします。

    autocmd Filetype Java setl makeprg=play_compile
    autocmd Filetype Java setl efm=%A\ %#[error]\ %f:%l:\ %m,%-Z\ %#[error]\ %p^,%-C%.%#
    

「play_compile」は単なるコンパイルスクリプトです。 SBTを使用するため、Mavenはここで正常に動作します。直接javacでも機能します。このようにして、VIMのクイックフィックスバッファ(:cnext、:clist:cprevなど)を使用できます。

  • クラスをジャンプするには、 ctrl-p を使用します。美しい。これを使って。ファイルをジャンプする際のEclipseよりも高速。

  • メソッドをジャンプするために、私は活発なcタグでtagsearchを使用します。 ctrl-]を使用して、メソッド宣言にジャンプします。 Ctrl-oを使用して戻ります。 Eclipseと同じようには機能しませんが、十分に機能します。

  • コード補完に supertab を使用します。 Javacompleteはかなり遅いので、オムニコンプリートに固執します。繰り返しますが、Eclipseほど正確ではありませんが、高速であり、十分に機能します。

8
critium

Vimを使用します。 ^-^(正確にはgVim)

すべてが揃っています(いくつかのプラグインが必要です)。

ところで、 snippetsEm は、便利なスニペット(TextMateなど)を使用したコーディングのための素晴らしいツールです。既製のパッケージを使用(または変更)することも、独自のパッケージを作成することもできます。

5
Berzemus