Ha, I actually all three of Vim, Emacs, and a more IDE-like editor:
- Vim: this is my home editor - in particular, I use Vim keybindings in the other editors. Mostly I use it for editing config files and other scripts, and occasionally to perform more complex editing tasks in files I'd usually use other editors for. I have a good configuration for editing these sorts of files. I have tab completion, project search, and the like set up here, but not more complex language-specific editing functionality for the most part.
- Emacs: for Org mode and Magit primarily. I'll edit other files here if it's convenient (especially if I'm editing a file linked to by my Org agenda) - I use Doom Emacs, so there are some sane defaults installed for other languages - but I probably won't adopt Emacs as my primary editor, since it's prone to lag and lock up too often. Maybe that's due to Org, and I could fix it, but since Emacs' support for multithreading and async isn't the most robust, it seems like a better of use of my time to leave Emacs dedicated to Org mode.
- IDE: At Google, there is a web IDE that is integrated with syntax checking, build system, source control, that I use most of the time to edit code that goes into Google's main repository. I've briefly tried to set up such integration with Vim and Emacs - they exist, but it hasn't been worth my time when a frankly pretty good solution is actively maintained internally.
Perhaps I would use VSCode if I were working elsewhere, assuming its plugins are more robust than Vim/Emacs language integration plugins. The Language Server Protocol has been a boon to all the editors I use.
Just wanted to mention that Vim and Emacs both support the language server protocol -- I can't speak to vim support since I'm primarily an emacs user, but it's been great for me.
- Vim: this is my home editor - in particular, I use Vim keybindings in the other editors. Mostly I use it for editing config files and other scripts, and occasionally to perform more complex editing tasks in files I'd usually use other editors for. I have a good configuration for editing these sorts of files. I have tab completion, project search, and the like set up here, but not more complex language-specific editing functionality for the most part.
- Emacs: for Org mode and Magit primarily. I'll edit other files here if it's convenient (especially if I'm editing a file linked to by my Org agenda) - I use Doom Emacs, so there are some sane defaults installed for other languages - but I probably won't adopt Emacs as my primary editor, since it's prone to lag and lock up too often. Maybe that's due to Org, and I could fix it, but since Emacs' support for multithreading and async isn't the most robust, it seems like a better of use of my time to leave Emacs dedicated to Org mode.
- IDE: At Google, there is a web IDE that is integrated with syntax checking, build system, source control, that I use most of the time to edit code that goes into Google's main repository. I've briefly tried to set up such integration with Vim and Emacs - they exist, but it hasn't been worth my time when a frankly pretty good solution is actively maintained internally.
Perhaps I would use VSCode if I were working elsewhere, assuming its plugins are more robust than Vim/Emacs language integration plugins. The Language Server Protocol has been a boon to all the editors I use.