Quantcast
Channel: Vimタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 5608

人類は Java をターミナル内で書く手段を確立していた

$
0
0

X なしで Eclim を使う方法。

導入

Vagrant や Docker の流行により、気軽に仮想マシンを使う時代になっています。すると開発にも仮想マシンを使うようにしてホストマシンはできるだけ汚さない方向に持って行きたいことになる。手軽に使いたいため当然 X 環境などは構築しない。

ここで問題になるのは IDE を前提にした言語。 IDE はウィンドウシステムの中で動くため、仮想マシンを X なしで使うと IDE の機能を使えず開発が厳しくなってくる。

具体的に言うと Java 、ジャバ、ジャヴァである。

書くときはあまりにも長い名前をタイプしたくないため補完が欲しくなり、読むときは名前解決のためのタグジャンプが欲しくなる。

Eclim

Eclimは Eclipse の機能を Vim を始めとする各種エディタで使うインターフェースを提供するソフトウェアです。ネットワーク越しに Eclipse の機能を叩いています。
ウィンドウシステムありの環境においては、 Eclipse と Vim のインターフェースを両方使いたいか否かによって、次の使い方があります。

  1. Eclipse を立ち上げず、 Eclim デーモンを立ち上げて Vim で Eclim と通信
  2. Eclipse を立ち上げて、外部エディタとして Vim で Eclim と通信
  3. Eclipse を立ち上げて、 Eclipse 内に埋め込まれた Vim で Eclim と通信

ここでは X 環境を構築しないので、 1. の使い方をすることになります。

必要なもの

  • Eclipse 4.3.2
  • Eclim 2.3.2
    • 最新版の Eclim 2.3.4 では動かなかった
  • Xfvb
    • 仮想 X サーバ
  • build-essential とかそのへんのやつ

インストール

Ubuntu では

$ sudo apt-get install openjdk-6-jdk xvfb build-essential
$ wget <eclipse_mirror>/eclipse-<version>-linux-gtk.tar.gz
$ tar -zxf eclipse-<version>-linux-gtk.tar.gz
$ java -Dvim.files=$HOME/.vim \
    -Declipse.home=$HOME/eclipse \
    -jar eclim_2.3.2.jar install

こんな感じです。
Eclim 2.3.4 および 2.3.3 では動かなかったので 2.3.2 を使っています。

使い方

Xvfb で仮想 X サーバを立ち上げて、その上で Eclipse および Eclim を起動し Vim から利用します。

$ Xvfb :1 -screen 0 1024x768x24 &$ DISPLAY=:1 ./eclipse/eclimd start

すると Eclim デーモンが立ち上がるので、 Vim を立ち上げて

:PingEclim

でバージョンが返ってくることを確認。

:ProjectCreate /path/to/my_project -n java

でプロジェクト作成。

補完

$ mkdir -p /path/to/my_project/src/a/b/c
$ vim /path/to/my_project/src/a/b/c/X.java
packagea.b.c;classX{publicstaticvoidmain(String[]args){}}

ここまで書いたところで、 mainの中に

System.

と入力して <C-x><C-u>を入力しましょう。すると補完候補が表示されるはず。他にも、次のように

packagea.b.c;classX{privatestaticArrayList<Integer>lst=newArrayList<Integer>();publicstaticvoidmain(String[]args){System.out.println("Hello, Eclim!");}}

ArrayListimport宣言がありませんが、 ArrayListの上にカーソルを持って行き :JavaImportと叩くと importを追加してくれます。また、この lstについて

lst.<C-x><C-u>

ArrayListのメソッドも補完してくれます。

タグジャンプ

packagea.b.c;classYimplementsRunnable{publicvoidrun(){System.out.println("Hello from Y");}}
packagea.b.c;classX{publicstaticvoidmain(String[]args){Yy=newY();y.run();}}

runの上に行き :JavaSearchContextでクラス Yrun()メソッドにジャンプできます。

他の言語

http://eclim.org/vim/index.htmlによると

  • C/C++
  • Html / Css
  • Java
  • Javascript
  • Php
  • Python
  • Ruby
  • Scala
  • Xml / Dtd / Xsd

に対応しているらしい。僕も Scala で使いたいので試してみる。

コマンド一覧

http://eclim.org/cheatsheet.htmlを一通り見ておくと良いと思います。


Viewing all articles
Browse latest Browse all 5608

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>