私はVimにハマっています。今では、これが事実上のテキストファイル編集方法です。
それは主にIDEではなくテキストエディターであるため、Javaアプリの開発を簡単にするためのトリックはありますか?
私が持っているいくつかの質問:
- viを終了せずにMavenタスクを呼び出すにはどうすればよいですか?
- コード補完を取得できますか?
- 構文の強調表示はどうですか?
他に知っておくべきこと(「やらないで!」以外)
私はVimにハマっています。今では、これが事実上のテキストファイル編集方法です。
それは主にIDEではなくテキストエディターであるため、Javaアプリの開発を簡単にするためのトリックはありますか?
私が持っているいくつかの質問:
他に知っておくべきこと(「やらないで!」以外)
回答:
いくつかのヒント:
楽しんで :-)
私は何年もVimユーザーでした。私は時々Eclipseを起動し始めています(viプラグインを使用していますが、これにはさまざまな問題があります)。主な理由は、Javaビルドにはかなり時間がかかることです...そして、mavenのような高度にコンポーネント化されたビルドフレームワークが追加されて、徐々に遅くなっています。そのため、変更の検証にはかなり時間がかかる傾向があります。これは、多くの場合、後で解決する必要のあるコンパイルの問題を山積みにすることにつながり、コミットメッセージによるフィルタリングにはしばらく時間がかかるようです。
コンパイルの問題のキューが大きくなりすぎると、Eclipseを起動します。それは私が変化の簡単な仕事をするのを許します。遅くて使いづらいし、Vimほどエディタの素晴らしさは劣ります(私はVimを10年近く使ってきたので、私にとって2番目の性質です)。特定のバグを修正する必要がある、特定のロジックの一部をリファクタリングする必要があるなど、正確な編集が必要だと思います... Eclipseでの編集は、Vimでできるほど効率的ではありません。
また、ヒント:
:set path=**
:chdir your/project/root
これにより^wf
、クラス名が大規模なプロジェクトをナビゲートするための非常に優れた機能になります。
とにかく、細いのは、たくさんの新しいコードを追加する必要があるとき、コンパイルの問題や同様のものを追跡するのに費やされた時間のために、Vimは私を遅くしているようです。ただし、特定のソースを見つけて編集する必要がある場合、Eclipseはそりハンマーのように感じます。私はまだVimの魔法のIDEを待っています。私が知っている3つの主要な試みがありました。純粋なviml IDEタイプのプラグインがあり、多くの機能が追加されていますが、使用するのは不可能のようです。eclimがあります。そして実際にVimを埋め込むEclipse用のプラグインがあります。最後の1つは、真に真面目なJava EE作業にとって最も有望であるように見えますが、非常にうまく機能していないか、Eclipseのすべての機能を組み込みのVimと実際に統合しているようには見えません。
キーストロークで欠落しているインポートを追加したり、入力の問題を伴うハイライトコードを追加したりすることなどは、IDEから大規模なJavaプロジェクトで作業するときに非常に貴重なようです。
.java
を見つけることができる場合、新しい分割ウィンドウのカーソルの下にあるjavaファイル/クラス(ファイル名拡張子は不要)を開きます。それ:set path=**
が役立つ理由です。
:help ^wf
-ちょうど他のvimのヘルプのような
viを終了せずにMavenタスクを呼び出すにはどうすればよいですか?
Mavenは他のシェルコマンドと同じです。
:!mvn
の:set makeprg=mvn
お気に入りのキーマッピングがある場合は、これを行うことができます:make
。
コード補完を取得できますか?
はい、eclimは素晴らしい、vimの編集効率とEclipseのJava言語固有の認識との間の架け橋です。
<C-n>
そして、<C-p>
それほど大きくはないが、驚くほど便利です。
構文の強調表示はどうですか?
正規表現ベースのハイライガーには十分すぎるほどです。
コードテンプレート(snippetEmu —デフォルトのスニペットは吸うが、カスタマイズ性は優れている)、使用方法の検索、宣言への移動(eclim、grep、ctags)、ゲッターとセッターの生成(java_getset、またはeclim)、自動インポート(eclim)。簡単な実験には、Javaシェルも必要になる場合があります(BeanShell、別名bsh
)。
Java Mavenプロジェクトの開発用にこのVimプラグインをアップロードしました。
まだ設定していない場合は、ハイライトを設定することを忘れないでください:
https://github.com/sentientmachine/erics_vim_syntax_and_color_highlighting
次の概要が非常に役立つことがわかりました:http : //www.techrepublic.com/article/configure-vi-for-java-application-development/5054618。:makeの説明はmavenではなくantのためのものでしたが、それ以外の点では素晴らしい要約でした。
これはかなり数年後のことですが、興味深いプラグインをいくつか紹介します。私はまだこれらのどちらも試していませんので、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など)を使用できます。
vimを使用します。^-^(正確にはgVim)
あなたはそれをすべて持っています(いくつかのプラグインで)。
ところで、snippetsEmuは、有用なスニペット(TextMateなど)を使用してコーディングするための優れたツールです。既製のパッケージを使用(または変更)することも、独自に作成することもできます。