Stairway to vim

Today I started to work on a Scala project, I spend most of my time using vim (or in this case neovim) so I started to looking for plugins to write Scala using [neo]vim.

Plugin Manager

First of all I use Plug as Plugin Manager, is very easy to use and allows to manage plugins with just a few commands.

Completion System

I use Deoplete to enable the keyword completion system, it supports many languages.

Linting System

I use Ale, a plugin for providing linting while you edit your text files, it supports Scala too obviously, just install scalastyle and scalac.


I use vim-scala, and if you install FuzzyFinder you will able to switch from src to test dirs with <leader>fs and <leader>ft

I found another important piece of tools that can improve your use of scala, it’s called Ensime, using the vim plugin and the sbt plugin you will be able to navigate through the project, for example with :EnDeclaration you will able to go directly on the method declaration and using C-X C-O you can see the completition of it and so on.


I also use some plugins to improve my workflow like: