Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
16
Help us understand the problem. What is going on with this article?

More than 5 years have passed since last update.

@saito400

Ensimeインストール

Documents

・Wiki Home
https://github.com/ensime/ensime-emacs/wiki

・Command Reference
https://github.com/ensime/ensime-emacs/wiki/Emacs-Command-Reference

・ENSIME SBT(Ensime用の設定ファイル生成ツール)設定
https://github.com/ensime/ensime-sbt

試した環境

・Mac OSX YosemiteかEl Capitan

・Emacs 24.5

構築

Scala+sbt

brew install scala
brew install sbt

Emacsインストール

scala-mode2+Ensimeインストール

~/.emacs.d/init.elに以下の記述を追加しEmacsを再起動

(require 'package)
(add-to-list 'package-archives '("melpa" . "http://melpa.milkbox.net/packages/") t)
(add-to-list 'package-archives '("marmalade" . "http://marmalade-repo.org/packages/"))
(package-initialize)

(unless (package-installed-p 'scala-mode2)
(package-refresh-contents) (package-install 'scala-mode2))
(unless (package-installed-p 'ensime)
(package-refresh-contents) (package-install 'ensime))


(setenv "PATH" (concat "PATH_TO_SBT:" (getenv "PATH")))
(setenv "PATH" (concat "PATH_TO_SCALA:" (getenv "PATH")))


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


sbt pluginの設定

~/.sbt/0.13/plugins/plugins.sbtに以下を追加

resolvers += Resolver.sonatypeRepo("snapshots")

addSbtPlugin("org.ensime" % "ensime-sbt" % "0.2.3")

// project/plugins.sbt
dependencyOverrides += "org.scala-sbt" % "sbt" % "0.13.8"

プロジェクト毎のEnsime用設定ファイル生成

プロジェクトのディレクトリに移動し以下コマンドを実行

sbt gen-ensime

Ensimeを起動

Emacs起動後に以下を実行

M-x ensime

よく使ってる機能

ショートカット 説明
C-c C-v f ソースをフォーマット
C-c C-v r 呼び出し元にジャンプ
C-c C-v i カーソルが当たってる要素をインスペクト
C-c C-c a 全ソースを型チェック
C-c C-t t 現在のクラスのテストクラスに移動
C-c C-t i 現在のテストクラスの実装クラスに移動
C-c C-r o インポートを整理
M-. 定義にジャンプ
M-, ジャンプから戻ってくる

remote debugging

以下コマンドでデバッグモードでactivatorを起動

activator -jvm-debug 9999 run

ensimeからアタッチ

M-x ensime-db-attach

16
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
16
Help us understand the problem. What is going on with this article?