好多人都会问 scala 的编辑工具用啥? eclipse ? intellij ? emacs? sublime?
都可以,不说那个好,怕引起争议,多累啊,我这里只是大致介绍下emacs 中开发scala的方式。
首先介绍下基本工具,sbt,不管你是使用那个编辑工具,sbt都是需要的,就像是maven,也有人不喜欢sbt,说是慢,就喜欢用maven,我还是坚持建议用sbt, 其实一点都不慢,用下"~compile"试试。
sbt的参考https://github.com/CSUG/real_world_scala/blob/master/02_sbt.markdown,非常详细,需要耐心看完,比价长,但是非常有价值。
安装好sbt 后,可以就创建scala 工程了,当然你也可以写一个没有main的scala脚本,但是一般情况下都是project,我有一段脚本,可以参考,可以裸奔出一个工程,不借助任何一个编辑工具。详细看下
mkdir 你的工程目录
cd 你的工程目录
touch build.sbt mkdir -p src/main/java src/main/resources src/main/scala/com/myproject mkdir -p src/test/java src/test/resources src/test/scala mkdir project echo -e "package com.myproject\n object Hello {\ndef main(args : Array[String]) = {\nprintln(\"Hello World\")\n}\n}" > src/main/scala/com/myproject/Main.scala
目录格式是
然后输入 sbt 就可以运行了,
“hello world“ 出来了
我一般把上面这段代码直接放dash中,直接一个key调出代码,非常方便,非常cool
好了,说了这么多还没说到emacs开发scala,现在最流行的是ensime,安装参考https://github.com/ensime/ensime-emacs
两种方式,我使用了后一种,直接下载然后配置,参考
(add-to-list 'load-path "xxxxxxxxx/emacs/scala/ensime_2.10.0/ensime_2.10.0-0.9.8.9/elisp") (require 'ensime) (add-hook 'scala-mode-hook 'ensime-scala-mode-hook)
ok ,安装好emacs和ensime后,调用原先裸奔给出来的工程了,进入原先的sbt工程目录, 必须要进入sbt repl; 输入ensime generate
这个是为了在emacs 中ensime的必须步骤
好了,现在可以使用emacs打开 这个工程my_scala_project
然后执行M-x ensime ,ok万事具备,可以玩scala了,ensime非常强大,可以断点调试,代码补全等等,不会让你失望的。
下面是我自己整理的快捷键。可可以参考http://ensime.github.io/
C-c C-b b =>build 整个工程
C-c C-b r rebuild
C-c C-v e 显示错误列表
C-c C-v z repl
C-c C-v s sbt 入口
C-c C-r t 自动import 包
Debugging
C-c C-d b to set a breakpoint 设置断点
C-c C-d u 删除断点
C-c C-d r 执行debug
C-c C-d c continue
C-c C-d s step into
C-c C-d n step to the next line
C-c C-d o step out of the current function
C-c C-d i 检查value
C-c C-d t display the current backtrace
基本编辑
M-. 去定义函数处
M-, 返回调用处
M-* 返回调用处
C-c C-v i or Control+Right-Click 检查类型
C-c C-v p
检查包 ,Inspect the package of the current source file.
search
C-c C-v v to start a global search
C-p and C-n move the selection up and down,
重构
C-c C-r m 光标选中的进行重新写一个函数
mac环境下使用emacs开发scala