You should become proficient in vim or emacs
A lot of people don’t learn vim/emacs because the learning curve is pretty steep. I think that it’s extremely useful for software engineers to be proficient with one of these 2 editors:
- They are light and make working on 2 PRs in parallel significantly easier – especially when compared to heavy IDEs like Intellij/Eclipse/Visual studio. It’s also the case if you work on a remote machine.
- Similar to one of my previous posts about tinkering your setup, leaving vim/emacs will help you develop a strong will to figure out things. The learning curve is honestly more like a function step, but the effort is worth it.
- These editors are not necessarily always the best for the given use case but they do provide pretty neat features – e.g. macros in vim are pretty powerful, they sometimes work wonders when sed isn’t a good fit.
- I believe they are also easier on your body (namely wrists/fingers). While it does reduce the number of keystrokes, it more importantly reduces how often you have to move your arms/twists your wrists (to touch your arrow keys or your trackpad). If you pair them with a tiling window manager (e.g. awesomewm), you’ll end up with a very stable position where you won’t have to move your wrists much. I believe this is what allowed me to efficiently work in the train when I was living in San Francisco and commuting to Mountain View.
- Last but not least, they are better suited when paired with CoPilot – these editors are just more efficient to tweak/update code than other IDEs (because you can yank text, have macros etc.). I’ll talk more about CoPilot and other AI tools for engineers in a different post, but this is definitely something worth keeping in mind.
To be clear, I’m not saying everyone has to use vim/emacs all the time but I do believe they are powerful tools that software engineers should be proficient with – similarly to how you should be proficient with grep/sed even though you don’t have to use it every day.