3

我是 emacs 的新手,我想在 Windows 中使用ensime。我试过了,但它不起作用。似乎它不起作用,因为有一个名为 "\ensime\bin\server.sh" 的 *nix 格式文件。非常感谢有人给我一些提示。

编辑:我遵循 VonC 的建议,但它并不完美。我确定我错过了一些东西。 替代文字 我已经在 D:\Dev\emacs-23.1 目录中安装了 emacs23.1,在 D:\Dev\emacs-23.1\scala-mode 中安装了 scala-mode,在 D:\Dev\emacs-23.1\ensime 中安装了 ensime。

这是我的 .emacs 文件内容:

;;禁用工具栏
(tool-bar-mode nil)

;;显示行号
(global-linum-mode t)

;;使用scala mode
(add-to-list 'load-path "D:/Dev/emacs-23.1/scala-mode/")
(require 'scala-mode)

(add-to-list 'auto-mode-alist '("\\.scala$" . scala-mode))
(add-to-list 'load-path "D:/Dev/emacs-23.1/ensime/src/elisp/")
(require 'ensime)
(add-hook 'scala-mode-hook 'ensime-scala-mode-hook)

这是我的 D:\Dev\emacs-23.1\ensime.ensime 文件内容:

(
:server-root "D:/Dev/emacs-23.1/ensime/"
:server-cmd  "D:/Dev/emacs-23.1/ensime/bin/server.bat"
:server-host "localhost"
:server-env ()

:project-package "com.ensime"
:source ("src")
:exclude-source ()
:classpath ("lib/jnotify/jnotify-0.93.jar"
        "lib/scala/scala-library.jar"
        "lib/scala/scala-compiler.jar")
)

这是我的 D:\Dev\emacs-23.1\ensime\bin\server.bat 文件内容:

@echo off
set PORT_FILE=%1
set CLASSPATH=D:\Dev\emacs-23.1\ensime\lib\jnotify\jnotify-0.93.jar;D:\Dev\emacs-23.1\ensime\lib\scala\scala-library.jar;D:\Dev\emacs-23.1\ensime\lib\scala\scala-compiler.jar;D:\Dev\emacs-23.1\ensime\dist\ensime.jar
java -classpath %CLASSPATH% -Djava.library.path=D:\Dev\emacs-23.1\ensime\lib\jnotify com.ensime.server.Server %PORT_FILE%

替代文字 http://www.turboimagehost.com/p/3350328/3769883.PNG.html

4

3 回答 3

5

我们最近合并了一些有助于支持窗口的更改。ENSIME 现在包含一个 bin/server.bat 文件。此外,类路径构造现在使用适合平台的路径分隔符。

于 2010-04-30T21:59:24.363 回答
2

将 DOS 中的 shell 脚本移植到以下位置应该很简单server.bat

@echo off
set PORT_FILE=%1
set CLASSPATH=lib\scala\scala-library.jar;lib\scala\scala-compiler.jar;dist\ensime.jar
java -classpath %CLASSPATH% -Djava.library.path=lib\jnotify com.ensime.server.Server %PORT_FILE%

从 ensime 目录执​​行。

一个更独立的版本(可从任何目录执行)将是:

@echo off
set t=%~dp0
set adp0=%t::\=:\"%"
cd %adp0%..
set CLASSPATH=lib\scala\scala-library.jar;lib\scala\scala-compiler.jar;dist\ensime.jar
java -classpath %CLASSPATH% -Djava.library.path=lib\jnotify com.ensime.server.Server %PORT_FILE%

即使ensime在其中有空格的路径中,它也应该可以工作。

  • %~dp0是 server.bat 的完整路径(其中可能包含空格的路径)
  • set adp0=%t::\=:\"%"将在该路径周围添加双引号
  • %adp0%..将参考ensime目录
于 2010-04-21T10:33:30.613 回答
0

请注意,如果您在 Windows 上从 git clone 构建,则需要在每个 jar 文件之前修改 server.bat 并删除 .\dist\。此外,当 dist 目录被 tar 时,你会得到一个错误。这可以忽略。ensime 是一个活跃的项目,Aemon Cannon 几乎每天都会推送更新。与一个月前相比,最新版本有了很大改进。所以,从 git clone 安装是个好主意。请参阅http://aemon.com/file_dump/ensime_manual.html中的说明 来构建调用

sbt 更新

sbt 分布

忽略焦油错误。修复上面提到的 server.bat 虽然有一些严重的错误,但对于喜欢 emacs 和 scala 的人来说,这是天赐之物。你不需要日食。Aemon 可以快速修复错误。它适用于 android 项目。我所要做的就是将 :compile-jars ("d:/software/android-sdk-windows/platforms/android-4/android.jar") 添加到 .ensime。

于 2010-09-11T10:09:05.377 回答