I switched to Neovim some years ago and have really enjoyed working with it ever since.
Flow is one of the main reasons why. The key mappings and frequent use of melodies over chords makes typing a seamless experience: I rarely have to stop thinking to remember some keyboard shortcut. Most key strokes are deeply memorized and require no effort to recall. And when I do struggle to remember some key mapping, Vim is easily customizable so that I can change the key mapping to something that is easier to remember for me. I never had that experience when working in VSCode or PyCharm, even when trying to make full use of the available shortcuts.
Another big reason is the sense of mastery. As an engineer, I want to make the tools I use as much my own as I can: I want to be able to contribute to them, customize them to my needs, and over time become better at using them. Vim encouraged me to keep track of my configuration in git. Once I had set up my dotfiles repository for Vim, many more tools followed, like my zsh settings or my configuration for git itself. I now regularly revise and update my own developer environment, and try out new patterns whenever I noticed an annoying or repetitive task. I was also able to incrementally incorporate lessons and best practices I learnt from reading other people’s configuration files.
A third reason why I like Vim is that it’s a very powerful editor, which makes navigating and editing text or code much more enjoyable. After short (but steep) learning phase, I felt I had a lot of really powerful tools right at my finger tips, many of which I hadn’t even imagined when I was using PyCharm or VSCode.
While keeping my configuration up-to-date does take time and effort, the new tricks and shortcuts I have learnt over time together with the sense of continuous progress fully make up for it. With popular community pre-configurations like AstroVim, maintenance has also become a lot easier.