我是Scala的新手,并使用emacs + ensime + sbt设置进行Scala开发.
这个设置非常好用,但是有一件事让我疯狂 - 无法自动编译/重新加载到sbt的Scala控制台.
我使用REPL很多,并希望能够从console命令启动REPL并使用REPL 测试我对scala类的更改,而不必关闭它并在每次进行更改时重新加载.
我来自Erlang环境,这种开发方式很容易使用Erlang但是SBT似乎很难.我安装了JRebel插件,但它似乎对我描述的情况不起作用.
有没有人能够做出类似的工作,并愿意分享配置步骤?
非常感谢提前.
我是Ocaml的新手,只是用emacs,merlin和flycheck设置我的开发环境.除了一件事之外,一切都或多或少地起作用:merlin似乎无法识别同一项目中模块之间的依赖关系.
例如,我有一个包含两个模块的测试项目:main.ml和awesome.ml.
这是我的main.ml引用第二个模块awesome.ml
(* main.ml *)
open Core
module A = Awesome
let _ =
Printf.printf "hello \n Converted to string we get: %s\n"
(A.str_of_t (A.succ A.one_t));
Run Code Online (Sandbox Code Playgroud)
这是awesome.ml:
(* awesome.ml *)
type t = int
let one_t = 1
let succ i = i + 1
let str_of_t = string_of_int
Run Code Online (Sandbox Code Playgroud)
当我发送main.ml缓冲区以使用utop-eval-buffer函数评估到utop时,我收到一个错误:"错误:未绑定的模块很棒"
我在项目的根目录中有.merlin,它有S指令.我知道它是由梅林发现的,因为它没有抱怨"开放核心"
S src
PKG core lwt ounit
B _build/src
B +threads
Run Code Online (Sandbox Code Playgroud)
这是我的_tags:
<src/**>: include
<src/**>: package(oUnit), package(core)
true:thread
Run Code Online (Sandbox Code Playgroud)
ocamlbuild的常规项目编译工作正常,没有错误.这是Makefile
## Makefile
default: main
main: main.native
test: test.native
%.native:
ocamlbuild …Run Code Online (Sandbox Code Playgroud) 我正在使用 python 模式设置我的 emacs (24.3)。我希望能够编辑 python 缓冲区并使用“Cc CC”在 python shell 中执行它。这大多有效。但如果我留在 python 代码缓冲区并再次执行缓冲区,我会收到“文本是只读”错误。
缓冲区是否已更改并保存,或者是否是相同的未更改缓冲区并不重要 - 重复抄送抄送会产生错误。解决方案似乎是访问 python 输出缓冲区并返回 python 代码缓冲区,然后执行 - 这是有效的。但这打破了我的流程。其他人也有同样的问题吗?我的设置中是否存在一些可能的错误配置?
问候, 罗马
我在徘徊如何摆脱过分警告。我的设置如下:
我有设置“ emacs-root”变量的init.el文件:
;; root of all emacs-related stuff
(defvar emacs-root
(if (or (eq system-type 'cygwin)
(eq system-type 'gnu/linux)
(eq system-type 'linux)
(eq system-type 'darwin))
"~/.emacs.d/" "z:/.emacs.d/"
"Path to where EMACS configuration root is."))
Run Code Online (Sandbox Code Playgroud)
然后在我的init.el中
;; load plugins with el-get
(require 'el-get-settings)
Run Code Online (Sandbox Code Playgroud)
在el-get-settings.el中,我正在使用el-get加载软件包,并将“ el-get / el-get”文件夹附加到加载路径:
;; add el-get to the load path, and install it if it doesn't exist
(add-to-list 'load-path (concat emacs-root "el-get/el-get"))
Run Code Online (Sandbox Code Playgroud)
问题是我对添加到列表的最后一个表达式中的'emacs-root'发出警告:“引用自由变量'emacs-root'”
我在这里做错了什么,有什么办法可以使编译器满意?
顺便说一句,这个设置可以正常工作-在加载期间,我没有任何问题,只是这个烦人的警告。
问候,罗马
我的emacs init.el文件有问题让我发疯.
我的init.el将load-path设置为一堆加载项,然后调用一些需求.
Emacs加载正常并且一切正常但是elche的flycheck标记init.el中的第一个require语句,"无法打开加载文件",如果我进行字节编译,它也会给我同样的错误.
我创建了最简单的示例,可以重新创建问题,并使用emacs 24.3(9.0)在MacOs X和Ubuntu上测试它.两个测试都给我同样的错误.
这是一个例子:
;; init.el --- entry point for configuration
(add-to-list 'load-path "~/.emacs.d/.")
(add-to-list 'load-path "~/.emacs.d/exec-path-from-shell")
(require 'test)
(require 'exec-path-from-shell)
;; test.el --- test lives in "~/.emacs.d"
(defvar test-var "this is test")
(provide 'test)
Run Code Online (Sandbox Code Playgroud)
错误 :
vagrant@elsa:~/.emacs.d$ pwd
/home/vagrant/.emacs.d
vagrant@elsa:~/.emacs.d$ sudo make
emacs --batch --eval "(byte-recompile-directory \".\" 0)"
Loading 00debian-vars...
Loading /etc/emacs/site-start.d/50autoconf.el (source)...
Checking /home/vagrant/.emacs.d...
Compiling /home/vagrant/.emacs.d/init.el...
In toplevel form:
init.el:5:1:Error: Cannot open load file: test
Checking /home/vagrant/.emacs.d/auto-save-list...
Checking /home/vagrant/.emacs.d/bin...
Checking /home/vagrant/.emacs.d/exec-path-from-shell...
Done …Run Code Online (Sandbox Code Playgroud)