vim用のScalaプラグイン「vim-scala」の使い方メモ そういえば、ずっと使っている割にどんな機能があるのか知らなかったので、ソースコードを見ながらまとめた結果。
インストール方法
パッケージマネージャー「dein」を使っていれば、.vimrc
に以下の内容を追加する。
call dein#add('derekwyatt/vim-scala')
ヘルプの表示
:help scala
なお、ヘルプのURLは以下の通り。
https://github.com/derekwyatt/vim-scala/blob/master/doc/scala.txt
ヘルプには、vim-scalaは以下の機能をサポートしていると書かれている。
機能解説
シンタックスハイライト
どの拡張子に対してシンタックスハイライトが有効になるかは、下記のファイルを参照。
https://github.com/derekwyatt/vim-scala/blob/master/ftdetect/scala.vim
つまり、以下の条件で自動的にScalaのソースコードとして認識される。
なお、拡張子が.sbt
の場合は、sbt用のシンタックスハイライトが使われる(vim-scalaには含まれていないが、vimの標準ディストリビューションには含まれていて、Scala用のシンタックスハイライトに加えて、(最近では使われなくなった)sbtで使われているDSL記号がハイライトされる。
import文のソート
:SortScalaImports
で開いているScalaのソースコードに書かれているimport
の内容をソートする。
ソートに関してカスタマイズが可能。カスタマイズの内容は、ヘルプを参照のこと。
そんなに頻繁に使うことはない気もするけど、インポートの数が凄く多い時には便利…なのか?
tagbarサポート
ctagsがインストールされていれば、ウインドウの右側にtagsに関する情報を表示する。
(macOS Xの場合、ctagsコマンドはbrew install ctags
で別途インストールが必要)
:TagbarToggle
で有効になる。
vim-scala自体が、Scala用のctagsファイルを内蔵しているので、別途用意する必要は無い。
https://github.com/derekwyatt/vim-scala/blob/master/ctags/scala.ctags
インデントサポート
ヘルプには詳しく書かれてないが、Scala固有のインデントをサポート。拡張子
https://github.com/derekwyatt/vim-scala/blob/master/indent/scala.vim
QuickFixサポート
ScalaのためのQuickFixのサポートが提供されています。:make
でsbt compile
が実行される。
https://github.com/derekwyatt/vim-scala/blob/master/compiler/sbt.vim
ただし、上記のソースを見ると分かるのですが、sbtの起動から始めるので、常用するには少々速度の点で厳しいかも…?
FuzzyFinderサポート
ヘルプの最後に追加されているが、FuzzyFinderのサポートも有る(最初に上げられてた機能一覧に無いけど、なぜかドキュメントの最後に追記されています)。
おわりに
インストールしたら、シンタックスハイライトが効いて、いい感じにインデントをセットしてくれる、ぐらいの使い方で十分な気がする。