scala-mode

うちのおんぼろPCだとIDEがきついので最近はScalaを書くのにEmacsを使ってます。

Scala用.elファイルはScalaの本体フォルダ-> misc -> scala-tool-support -> emacs の中に入っています。

これをパスが通っている場所において、.emacs

(require 'scala-mode-auto)
(add-to-list 'auto-mode-alist '("\\.scala$" . scala-mode))

(require 'scala-mode-feature-electric)
(add-hook 'scala-mode-hook
	(lambda ()
	  (set-buffer-file-coding-system 'utf-8)
	  (setq default-buffer-file-coding-systems 'utf-8)
	  (scala-electric-mode)
	  (define-key global-map "\C-cs" 'scala-run-scala)
	  (define-key global-map "\C-c\C-e" 'scala-eval-definition)))

と書けばOK。最初の2行だけでscala-modeとして利用するには十分ですが、scala-mode-feature-electricで閉じカッコ保管、あとは文字コード指定やREPLの起動などをキーバインドとして登録しています。

全体的なキーバインド

  • C-cC-l : scala-load-file ファイル読み込み
  • C-cC-r : scala-eval-region リージョン範囲のプログラム実行
  • C-cC-b : scala-eval-buffer バッファ全体のプログラム実行
  • C-cC-c : comment-region リージョン範囲のコメントアウト
  • C-cs : scala-run-scala 別窓を開いてREPLの起動
  • C-c C-e : カレントの式(ポイントが乗ってる式、または直前の式)を評価

といった感じ。スクリプトとして編集するなら割とサクサクできます。コンパイルしてテスト書きながらガリガリやるならsbtの設定もほしいところですが、それはまたいずれ。