This posts pretty much outlines all the things that I do as well. It is true that in going this route there needs to be a time investment at first (and some fiddleing throughout) but once you're set, there is no need to jump on to the next hot editor and learn new keybindings.
Where I disagree is the notion that a dev environment based on the terminal beats an IDE. If you are using a language with a huge (type-sensitive) API or a complicated framework, nothing beats an IDE for its auto-completion. Especially if you don't have a black belt in that language/framework yet.
You can use ctags and auto-completion plugins but nothing beats the code-introspection developed for IDEs.
If you don't code against complicated APIs, there is nothing that beats long-term productivity with a deep understanding of the terminal and an editor that is with you for many years.
Even if an IDE is the better choice for day to day work, it is beneficial to be comfortable in the terminal.
I sometimes find it hard to believe how uncomfortable coworkers are when they have to do some work on a remote server and what length they go through not to use the terminal.
Where I disagree is the notion that a dev environment based on the terminal beats an IDE. If you are using a language with a huge (type-sensitive) API or a complicated framework, nothing beats an IDE for its auto-completion. Especially if you don't have a black belt in that language/framework yet. You can use ctags and auto-completion plugins but nothing beats the code-introspection developed for IDEs.
If you don't code against complicated APIs, there is nothing that beats long-term productivity with a deep understanding of the terminal and an editor that is with you for many years.
Even if an IDE is the better choice for day to day work, it is beneficial to be comfortable in the terminal. I sometimes find it hard to believe how uncomfortable coworkers are when they have to do some work on a remote server and what length they go through not to use the terminal.