If I had to choose one single piece of software, I’d choose Vim.
I’ve only been a Vim user for a couple years, but I think I’m going to use it (or some future reincarnation of it) for the rest of my life. It takes a while to form this relationship, but once you get past the initial frustration and start speaking its language – nothing else can transfer your thoughts into the computer as efficiently and effortlessly.
Getting comfortable with Vim
Assuming you’re on a Unix-like operating system, you likely have a great Vim learning tool in the command line ready. Open the terminal and type:
Work through it, more than once. This is what has been the most effective for me.
After getting through the initial valley of despair, start sculpting your own .vimrc.
If you’re more of a video tutorial person, thoughtbot has a nice consise course here.