NeoVim as IDE

I've recently switched to using NeoVim as my IDE from VSCode. I was inspired by reading the excellent Practical Vim, and decided to switch when I idly wondered how find/replace over a whole project works with Vim and found elegant solutions that introduced me to the quickfix feature and lots of powerful Vim scripting that's possible using it.

While I'm still getting used to it, so far I'm quite pleased with the switch. The VSCodeVim plugin I was using previously is nice for supporting editing and motions, but it doesn't provide the full Vim expericence of commands, navigation, windowing etc. When I decided to use nvim as my IDE, I knew I had to find replacements for everything a modern IDE provides: project file tree sidebar, class display, jumping to definition, finding all occurrences of a class in a project, and debugging. Using a great vim customization file I found online from fisadev and supplementing it with my own custom file, I managed to come up with a setup that I'm pretty pleased with.

This setup uses the following:

Vimspector provides a VSCode-like experience for debugging, has similar configuration, and has a setting to use the same hotkeys. ALE allows asychronously linting/syntax checking and allowed me to have the same MyPy experience that I was used to in VSCode in NeoVim. I also added functionality to strip trailing whitespace on save, and create and load session files when entering and exiting nvim.

The fisadev file also provides some nice functionality in the form of hotkeys for nerdtree, fzf, and jumping to definition/occurrences and useful shortcuts for switching between windows.