LoginSignup
9
7

More than 5 years have passed since last update.

Emacs23でJavaクラス補完機能設定

Last updated at Posted at 2014-02-21

Amazon Linuxのemacs23.1でjava開発環境をつくるにあたり、Javaクラス補完機能設定を調査しました。

環境

  • Amazon Linux AMI 2013.09.2 (64bit) - ami-0d13700c
  • emacs 23.1
  • java 1.6.0.0
  • git 1.8.3.1

インストール手順

初期アップデートとemacsのインストール

Amazon Linuxインスタンスを立ち上げ、emacsをインストールします。

$ sudo yum update
$ sudo yum install emacs

Emacsのバージョンは23.1です。

$ emacs -version
GNU Emacs 23.1.1
Copyright (C) 2009 Free Software Foundation, Inc.
GNU Emacs comes with ABSOLUTELY NO WARRANTY.
You may redistribute copies of Emacs
under the terms of the GNU General Public License.
For more information about these matters, see the file named COPYING.

とりあえず、~/.emacs.d/init.dを作ってload-pathを通しておきます。

~/.emacs.d/init.el
(add-to-list 'load-path "~/.emacs.d")

環境構築に必要なツールのインストール(javacとgit)

いくつかのパッケージはgit cloneしますのでgitを用意します。また、Javaクラスのタグを生成する際にjavacも必要となりますので、これもインストールしておきます。また、アーカイブを展開する作業ディレクトリ(例:~/tmp)も作成しておきます。

$ sudo yum install git
$ sudo yum install java-1.6.0-openjdk-devel.x86_64
$ mkdir ~/tmp

多言語補完テンプレートauto-completeのインストール

まず、さまざまなプログラミング言語の補完テンプレートであるauto-completeをインストールします。基本的な手順は、適当なディレクトリでアーカイブを展開しmake installを行います。

cd ~/tmp
wget http://cx4a.org/pub/auto-complete/auto-complete-1.3.1.tar.bz2
bzip2 -cd auto-complete-1.3.1.tar.bz2 | tar xvf -
cd auto-complete-1.3.1
mkdir ~/.emacs.d/auto-complete
make install DIR=$HOME/.emacs.d/auto-complete/
~/.emacs.d/init.el
; auto-complete-mode
(add-to-list 'load-path "~/.emacs.d/auto-complete")
(require 'auto-complete-config)
(add-to-list 'ac-dictionary-directories "~/.emacs.d/auto-complete/ac-dict")
(ac-config-default)
(require 'auto-complete)
(global-auto-complete-mode t)
(define-key ac-complete-mode-map "\C-n" 'ac-next)
(define-key ac-complete-mode-map "\C-p" 'ac-previous)

これでさまざまな言語のキーワードの補完ができるようになります。

cl-libのインストール

次に、スニペットシステムyasnippetをインストールしますが、yasnippetはemacs24で標準となったcl-libを使用しており、emacs23では個別にインストールする必要があります。いくつかのインストール方法があるようですが、el-getを利用してインストールすることがもっとも容易でしたので、まずel-getをインストールします。
el-getは、~/.emacs.dにgit cloneし、適当に設定すれば使えるようになります。

cd ~/.emacs.d
git clone https://github.com/dimitri/el-get
~/.emacs.d/init.el
; el-get
(add-to-list 'load-path "~/.emacs.d/el-get/el-get")
(unless (require 'el-get nil 'noerror)
  (with-current-buffer
      (url-retrieve-synchronously
       "https://raw.github.com/dimitri/el-get/master/el-get-install.el")
    (goto-char (point-max))
    (eval-print-last-sexp)))
(add-to-list 'el-get-recipe-path "~/.emacs.d/el-get-user/recipes")
(el-get 'sync)

次にcl-libです。これはemacs23環境であればインストールをするようにel-getに指示するだけです。

~/.emacs.d/init.el
; cl-lib
(when (<= emacs-major-version 23)
  (el-get 'sync '(cl-lib)))

スニペットシステムyasnippetのインストール

cl-libの準備ができましたので、スニペットシステムyasnippetをインストールします。
yasnippetもまた、git cloneしてinit.elで設定すれば使用することができます。

cd ~/.emacs.d
git clone --recursive https://github.com/capitaomorte/yasnippet
~/.emacs.d/init.el
; yasnippet
(add-to-list 'load-path "~/.emacs.d/yasnippet")
(require 'yasnippet)
(yas-global-mode 1) ; minor-modeもある

Javaクラスタグ補完システムauto-java-completeのインストール

最後に、Javaソース内でクラス・メソッド名を保管したり、自動的にimport文を追加したりすることのできる、auto-java-completeをインストールします。手順としては、git cloneし、javaコマンドによって全クラス・メソッドのタグリストを作成します。

cd ~/.emacs.d
git clone https://github.com/emacs-java/auto-java-complete
cd auto-java-complete
javac Tags.java
java -cp "/usr/lib/jvm/java/jre/lib/rt.jar:." Tags # 必要に応じてclasspathを追加指定

init.elでは、java-modeで使うためにhookを定義します。

~/.emacs.d/init.el
; auto-java-complete
(add-to-list 'load-path "~/.emacs.d/auto-java-complete")
(require 'ajc-java-complete-config)
(add-hook 'java-mode-hook 'ajc-java-complete-mode)

参考

9
7
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
9
7