Neovim as a general-purpose almost-IDE

For a long time I used VSCode as my go-to editor, with a vim keybindings plugin for better editing. However I was never quite happy with the solution: I missed some of the features of native vim, and occasionally VSCode would become very sluggish. This all came to a head when I was working on a Matlab project, and the syntax highlighting plugin would cause the editor to lag horribly on files with anything more than 100 or so lines of code.

After a lot of tinkering, I have created a vim configuration which makes it feel a lot like a modern IDE, but with the added perks of native vim keybindings and great performance (so far). This repository hosts the full Neovim configuration.

Some of the highlights:

  • Semantic completion with Conquer of Completion.
  • NERDTree for directory navigation. Toggle with <C-t>.
  • Dashboard for easy sessions and a nice splash screen.
  • Fuzzy search with fzf.vim. Hit รถ to search files in repository (skipping files from .gitignore).
  • Proper indentation handling with vim-sleuth and indentLine
  • Auto-save functionality
  • Basic functionality to easily build/run/test code with GNU Make:
    • <F4>: calls the _vim_build target from vim.makefile
    • <F5>: calls the _vim_run target from vim.makefile
    • <F6>: calls the _vim_test target from vim.makefile
    • <F9>: calls the _vim_clean target from vim.makefile
  • Some custom keybinds:
    • Ctrl-Tab to cycle tabs
    • < and > to navigate buffers
    • <C-w> to close the current buffer
    • <C-q> to close vim (:qa)

Installing (Ubuntu)

Clone the repo and run the installation script:

git clone
cd bones-dotfiles
bash -x   # Verbose run

Note that this may mess with previous installations of vim. Check the install script before running!

Also, don’t forget to set the JetBrainsMono patched font as the font for your terminal.