前回のつづき、EmacsでのScala開発環境であるENSIMEを入れるまでの苦労

EmacsでのScala開発にはEnsimeというプラグインらしい - 趣味プログラマがまれになんかしたことの記録の続きです。前回ステップ8まで終わったから、続きで9から書きます。


9. どこでもよいので、Scalaのプロジェクトのディレクトリを作成します。自分の場合はデスクトップにprojectsというディレクトリがあるので、C:\Users\(MY_NAME)\Desktop\projects\HelloScala」というディレクトリを作った。
10. そこのディレクトリから、コマンドラインで「sbt」をうちこみしばらく待つ。
11. sbtのプロンプトが表示されたら、「ensime generate」と入力、.ensimeがそのHelloScalaにできる。
12. Emacsを開いて、「M-x ensime」と入力すると、ENSIMEプロジェクトを指定するようにいわれるので「C:\Users\(MY_NAME)\Desktop\projects\HelloScala\.ensime」を指定します。
13. なんかいろいろやってくれて、うまくいくと「ENSIME reasy. May the source be with you!」とか出てくる。
14. しかしここで「Failed to connect to ...: server process exited.」などと失敗する場合は起動時に確保するメモリ量が多いかららしい(scala - Error running ensime-source-buffer-loaded-hook - OSX with ENSIME and Emacs - Stack Overflow)。
15. メモリ量を減らすときは、.emacs.d/site-lisp/ensime/bin/server.batを開き、-Xmx1024という箇所をみつけ、-Xmx768とか適当に減らす。ちなみにserver.batの中はこんな感じ

set PORT_FILE=%1
set BOOTCLASSPATH="%~dp0\..\scala-library.jar;%~dp0\..\scala-reflect.jar;%~dp0\..\scala-compiler.jar;%~dp0\..\scala-actors.jar"
set CLASSPATH="%~dp0\..\lib\asm-3.3.jar;%~dp0\..\lib\asm-commons-3.3.jar;%~dp0\..\lib\asm-tree-3.3.jar;%~dp0\..\lib\asm-util-3.3.jar;%~dp0\..\lib\critbit-0.0.4.jar;%~dp0\..\lib\ensime_2.10-0.9.8.9.jar;%~dp0\..\lib\json-simple-1.1.jar;%~dp0\..\lib\lucene-core-3.5.0.jar;%~dp0\..\lib\org.eclipse.jdt.core-3.6.0.v_A58.jar;%~dp0\..\lib\org.scala-refactoring_2.10.0-SNAPSHOT-0.6.1-20130201.063851-55.jar;%~dp0\..\lib\scala-actors-2.10.0.jar;%~dp0\..\lib\scala-compiler.jar;%~dp0\..\lib\scala-library.jar;%~dp0\..\lib\scala-reflect-2.10.0.jar;%~dp0\..\lib\scalariform_2.10-0.1.4-SNAPSHOT.jar;%JAVA_HOME%\lib\tools.jar"
if not defined ENSIME_JVM_ARGS (set ENSIME_JVM_ARGS=-Xms256M -Xmx768M -XX:PermSize=128m -Xss1M -Dfile.encoding=UTF-8)
java -Xbootclasspath/a:%BOOTCLASSPATH% -classpath %CLASSPATH% %ENSIME_JVM_ARGS% org.ensime.server.Server %PORT_FILE%


これでめでたくENSIMEは動くようになるのだが、しかしENSIME自体の使い方がさっぱりわからないのだった。C-c C-b bでビルドはわかるけど、実行したりするのはどうすればよいだろうか。。。