前提と目標
下記のような開発環境の構築手順をメモしておきます。
- Mac OSX 10.9.4
- Scala 2.11.0
- SBT 0.13 (ビルドツール)
- IntelliJ IDEA 13.1 のCommunity Edition
- IdeaVIMの設定(操作をvimライクに)
- ターミナル用のScala環境の構築(scalaenv)
IntelliJ IDEA上でHello Worldを動かすところまでの手順を説明します。
ScalaとSBTはIntelliJのプラグインによって自動的にインストールされるため、個別にインストールする必要はありません。
現時点では、デフォルトのScalaのバージョンは2.10.4ですが、 SBTのビルド定義にバージョンを書けば、プロジェクトごとに異なるバージョンのScalaコンパイラでビルドできます。 具体例として2.11.0を使う方法を後述します。
また、上記の方法はIntelliJ IDEAのプラグインがScala一式をインストールしてしまうので、 ターミナル用の実行環境としてscalaenvを少し紹介します。
大半がIDEでの設定なので画像多め。
JDKのインストール
OracleのサイトでMac OS用のJDKのインストーラをダウンロードしてインストールします。
以下、JDK 8 (1.8.0 u20)で動作を確認しています。
IntelliJ IDEA 13.1をダウンロードしてインストール
インストールは割愛。初回起動時にプラグインのインストールを行います。
ScalaのためのIntelliJ IDEAの初期設定
初回起動時に聞かれる質問にはデフォルトのままOK。

まずはScalaとSBTのプラグインをインストールします。



“scala”でフィルタリングして、ScalaプラグインとSBTプラグインをインストールします。 少し時間がかかるかもしれません。 待っている間、”Background”というボタンが表示されると思いますが、押さずに終わるまでそのまま待ってください。


Closeボタンをクリックして戻っていくと、IntelliJをリスタートするかどうか聞かれるのでリスタートします。

次にJDKの設定をします。 Quick Startメニューより Configure -> Project Defaults -> Project Structureを順に選択。



Project SDKの項目でNewを選択してください。

下記のポップアップでJDKを選択してください。

使用するJDKのインストール先を選択するファイルダイアログが開きます。
私の場合はそのまま最初からJDK 1.8のパスが選択されていましたが、
そうでない場合はターミナルで /usr/libexec/java_home -v 1.8.0
を実行して表示されるディレクトリを選択してください。
$ /usr/libexec/java_home -v 1.8.0
/Library/Java/JavaVirtualMachines/jdk1.8.0_20.jdk/Contents/Home
下記のようになっていれば成功です。

HellowWorldプロジェクトを作ってみます。



TIPSを教えてくれる例のアレはOFFにしておきます。

Scalaクラスを追加します。

KindをObjectにするのを忘れないで下さい。

main()を定義します。object HellowWorldのすぐ下で、mainと入力してTABを押すとmainメソッドのテンプレートが補完入力されます。

メニューよりRunを実行します。

HellowWorldを選択。

画面下部にメッセージが出力されたら成功です。

別のバージョンのScalaコンパイラを使いたい場合
例えば2.11.0を使いたい場合、下記のようにbuild.sbtを修正してRefreshします。

Scala Consoleを実行してバージョンを確認してみてください。

IdeaVIMのインストールと設定
Preferences -> Plugins -> Browse repositories
でIdeaVIMを選択してインストールし、IntelliJを再起動します。
次に下記の設定を行います。
Ctrl+Hでバックスペースが効くようにする
Preferences -> VIM Emulation
で ^H
のハンドラをVimに変更

Key Mapで ^H
をバックスペースに変更(現在^H
に割り当てられているアクションはすべて解除)



JIS配列のキーボードで Ctrl+[
がEscになるようにする
Insertモードから抜けるときに Ctrl + [
を使えるようにします。
~/.ideavimrcを作成して、以下を記入します。
imap <c-]> <esc>
JIS配列のキーボードでもUS配列として認識されるため、 c-[
ではなく c-]
と書きます。
行番号が表示されるようにする
Preferences > Editor > Appearance > Show line numbers
にチェックを入れます。

ターミナルでの実行環境の準備(scalaenv)
IntelliJとは無関係に、端末上でScalaのREPLやコンパイラを使いたい時があります。 rbenvとほぼ同じ使用感で使うことができるscalaenvというツールを紹介します。
- https://github.com/mazgi/scalaenv
- rbenvがすばらしすぎるので #Scala, #sbt, #PlayFramework 版をつくってみた。 | Matsu Kiri Boze
rbenvと同様、複数のバージョンを切り替えて使うことができます。 また、基本的にインストール先(~/.scalaenv)のディレクトリ以外を汚さないので、アンインストールが簡単です。 各バージョンは~/.scalaenv/versions以下のディレクトリにインストールされます。
scalaenv自体のインストールの手順は下記の通り。(gitが必要)
$ git clone git://github.com/mazgi/scalaenv.git ~/.scalaenv
$ echo 'export PATH="${HOME}/.scalaenv/bin:${PATH}"' >> ~/.zshrc
$ echo 'eval "$(scalaenv init -)"' >> ~/.zshrc
インストール可能なバージョンのリスト
% scalaenv install -l
All available versions:
scala-2.10.1
scala-2.10.2
scala-2.10.3
scala-2.10.4
scala-2.11.0
(割愛)
2.11.0をインストール
rbenv同様、ソースをネットより取得して、~/.scalaenv/versions以下に展開します。
$ scalaenv install scala-2.11.0
デフォルトのバージョンを2.11.0に指定
$ scalaenv global scala-2.11.0
カレントディレクトリ以下でのバージョンを 2.11.0 に指定
$ scalaenv local scala-2.11.0
参考
下記のリンクを参考にさせていただきました。