A modular Vim/Neovim configuration

Home | About | Quick start guide | Documentation | Development | Community | Sponsors | 中文

Blogs » Use Vim as a Kotlin IDE

This is a general guide for using SpaceVim as a Kotlin IDE, including layer configuration and usage. Each of the following sections will be covered:

Enable language layer

To add Kotlin language support in SpaceVim, you need to enable the lang#kotlin layer. Press SPC f v d to open SpaceVim configuration file, and add the following snippet:

  name = "lang#kotlin"

For more info, you can read the lang#kotlin layer documentation.

Code completion

lang#kotlin layer will load the Kotlin plugin automatically, unless it’s overriden in your init.toml. The completion menu will be opened as you type.

Syntax linting

The checkers layer is enabled by default. This layer provides asynchronous syntax linting for kotlin. The default plugin is neomake, and the default lint command is ktlint.

In the Windows system, ktlint can be installed using scoop:

scoop bucket add extras
scoop install ktlint


Jump to test file

To manager the alternate files in a project, you need to current a .project_alt.json in the root of your project. Within the .project_alt.json file, the definitions of alternate files should be included.

For example:

  "src/*.kt": {"alternate": "test/{}.kt"},
  "test/*.kt": {"alternate": "src/{}.kt"}

With this configuration, you can jump between the source code and test file via command :A

running code

To run current kotlin script, you can press SPC l r, and a split window will be openen, the output of the script will be shown in this window. It is running asynchronously, and will not block your Vim.


Code formatting

The format layer is also enabled by default. With this layer you can use key binding SPC b f to format current buffer. Before using this feature, please install prettier:

npm install --save-dev --save-exact prettier

REPL support

Start a kotlinc-jvm inferior REPL process with SPC l s i. After the REPL process being started, you can send code to inferior process. All key bindings prefix with SPC l s, including sending line, sending selection or even send whole buffer.


Tasks manager

Create .SpaceVim.d/task.toml file in the root of your project. and add all the task command into it.

    command = 'gradlew'
    args = ['build']

For more info about task configuration, please checkout the task documentation

This article is not finished yet and new content will be updated in the future. If you want to help improve this article, please join the SpaceVim gitter room.

Powered by Jekyll