11
10

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

EmacsのEnsimeを使ってみよう

Last updated at Posted at 2015-01-19

はじめに

この記事ではEmacsのEnsimeのインストール手順を紹介します。使い方などについては公式のドキュメントを参照していただければと思います。私もインストールしたばかりで、ほとんど使ってはいませんが、リファクタリングツールやデバッガーがあるようです。

前準備

OS環境

この記事ではVagrantboxの'ubuntu/trusty64'を使います。Discover Vagrant Boxes Atlas by HashiCorpにあります。次のようなコマンドを実行して0S環境を導入しました。

$ mkdir ubuntu
$ cd ubuntu
$ vagrant add box ubuntu/trusty64
$ vagrant init
$ vagrant up # starts and provisions the vagrant environment
$ vagrant ssh
...
$ vagrant halt # stops the vagrant machine

Memory

多分、メモリ不足になります。2024程度のメモリを必要とします。ホストOSでVagrantfileを次のように編集しました。

  # Every Vagrant virtual environment requires a box to build off of.                                                                                                             
  config.vm.box = "ubuntu/trusty64"

  config.vm.provider "virtualbox" do |v|
    v.memory = 2024
  end

Java, Scala, sbt

apt-getコマンドを使ってJavaを導入しました。ここでは導入方法を省略して、Javaのバージョンだけ記載します。

/vagrant $ java -version
java version "1.7.0_72"
Java(TM) SE Runtime Environment (build 1.7.0_72-b14)
Java HotSpot(TM) 64-Bit Server VM (build 24.72-b04, mixed mode)
/vagrant $ javac -version
javac 1.7.0_72

Scalaとsbtもapt-getコマンドを使って導入しました。Scalaのバージョンは2.9.2、sbtのバージョンは0.13.7です。

~/.emacs.d/init.el

まずはEmacsの設定ファイルを編集します。

init.el
(setenv "JDK_HOME" "/usr/lib/jvm/java-1.7.0-openjdk-amd64")
(setenv "JAVA_HOME" "/usr/lib/jvm/java-1.7.0-openjdk-amd64")

(require 'ensime)
(add-hook 'scala-mode-hook 'ensime-scala-mode-hook)

~/.sbt/0.13/plugins/plugins.sbt

次にsbtファイルを編集します。プラグインをインストールするための設定ファイルだと思います。普通、sbtファイルにはビルド定義がありますが、これはプラグインを導入するためのファイルだと思います。

plugins.sbt
resolvers += Resolver.sonatypeRepo("snapshots")

addSbtPlugin("org.ensime" % "ensime-sbt" % "0.1.5-SNAPSHOT")

この内容を理解するためには、sbtのドキュメントが必要だと思います。次のURLのドキュメントを参照しました。

プラグインが本当にあるか?そういう疑問を解決するために、次のURLを参照しました。

scala-mode2

Emacsのパッケージ管理を使ってscala-mode2を導入しました。

M-x package-install
scala-mode2

Ensime

Emacsのパッケージ管理を使ってEnsimeを導入しました。

M-x package-install
ensime

project-name/.ensime

プロジェクトのルートディレクトリに.ensimeファイルを用意します。このファイルは自動生成することができます。次のようにコマンドを実行して、sbtを使って.ensimeを自動生成します。

$ cd project-name
$ sbt
...
> gen-ensime
> exit

使ってみよう

プロジェクトのソースファイルを開き、次のようにタイプします。

M-x ensime

F1 bでキーバインドを確認して、適当に遊んでみましょう!

一応、C-c C-b cは動いているようです。

あとがき

下記のURLを参照して、sbtを使ったことがない場合、このプラグインを導入することは難しいかもしれないと気付きました。

ほかにもたくさんの記事を参照しましたが、細かい手順が欠けていて、どこのファイルを編集するのか?どうやって.ensimeを自動生成するのか?といったところが分かりませんでした。

この記事で少しでもEnsimeの導入が楽になれば幸いです。また、私が間違えた内容を記載してしまっている可能性があります。間違いに気付きましたら、編集リクエストやコメントで教えていただけるとありがたいです。

11
10
3

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
11
10

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?