こんにちは、びしょ〜じょです。 最近は死んでるのでコードも全然書いてませんでした。


1. はじめに

VimでScalaを書いている、というと赤黒いアイコンを思い出すかもしれないが、そんな感じになっている。 動機としては、最近一切コードを書いてなかったのでなにか作ろうと思い、またScalaも以前から少し書いてみようと思っていたのでこの機会にと。 Vimでやろうとしたのは当然手元に(Neo)Vimがあるからだ。

2. プラギン

2-1. vim-scala

シンタックスハイライトが寂しいので入れる。

2-2. ensime-vim

Scalaも補完がされてほしい。 VimでJava/Scalaというと、EclimというEclipseの情報をVimから引っ張ってグニャグニャするやつがありますが、俺達VimmerとしてはエディタのためにIDEを使うのはなんとなくはばかられる。

(中略)

特にArchLinux(でyaourt)を使っており、Pythonなんて書かねーよハゲということでpipも基本的に触らない人用にインストールガイドを書こう。 だいたいは公式のインストールガイドに則ればいい。

2-2-1. Python modules

注意する点はpipに関する記述だが、Pythonは3で問題ない。 pipでなくpacman/yourtに任せたいので、公式リポジトリからpython-websocket-client、AURからpython-sexpdataを引っ張る。 後者は微妙にメンテされておらず、PKGSBUILDをいじる必要がある。

# http -> httpsにするだけだが
-source=("http://pypi.python.org/packages/source/s/sexpdata/sexpdata-${pkgver}.tar.gz")
+source=("https://pypi.python.org/packages/source/s/sexpdata/sexpdata-${pkgver}.tar.gz")

2-2-2. sbt plugin

あとはsbtのグローバルプラグインに以下を追加する。

addSbtPlugin("org.ensime" % "sbt-ensime" % "2.6.0")

sbtでensimeConfigを実行すると、プロジェクトルートに.ensimeが生成される。

2-3. neoformat

フォーマッター。ScalaもscalafmtがあればOK。 ただ何もしないとフォーマット時にファイル先頭にゴミが入るので以下をvimrcに追加

let g:neoformat_scala_scalafmt = {
  \ 'exe': 'scalafmt',
  \ 'replace': 1,
  \ }

3. おわりに

人生おわった