"Do you always use the terminal?" is a question I often get asked by developers after pairing together. The answer is "Yes. Every time I can. Any you should do the same."
GUIs are not efficient
This conversation often happens while working with Git. There many great Git GUI clients, but none of them will ever be as powerful as Git from the terminal. Git is a command line tool. GUI clients are calling it under the hood, and always making compromises in the process.
Over the years I built aliases, scripts, and muscle memory now making me faster and more efficient at using Git from the terminal than I could ever be from a GUI. I wrote all those so they'd fit in my workflow. Each of us has a different way of working, when using a GUI we need to adapt to what it offers. It's like the difference between a tailor made shirt and one bought at a shopping center.
The terminal is a blank canvas for you to configure the way it suits you. This is why you should use it. You can fine tune your terminal to your needs like no other tool.
How often have you thought "I wish
<tool x> let me do
<thing y>"? With the terminal you can make this happen. Write a script, or a few scripts and pipe them together. You can do anything.
I've seen people check Twitter, read and send emails, post to Slack, play GIFs, without ever leaving the terminal.
Every improvement you make to your terminal setup adds up over time. This is called compounding effect and it's a key concept for financial investments.
Back in 2015 I aliased
git commit to
gc. Every time I made a commit since then I saved 8 keystrokes.
Over the past year I made 1074 commits in the main repository I work on. I saved 8592 keystrokes in that repo alone, more than twice the amount of keystrokes it took me to write this post.
gc is only one of the many aliases I have in my setup, and aliases are just the tip of the iceberg. Imagine what you could achieve and how much you could save with scripts!
Give it a shot
Here's a challenge for you. Over the 30 work days spend the first 10-15 minutes of every day working on improving your terminal setup. On day 30 revert all the changes and see the difference for yourself. I bet you'll never want to go back.
Where to begin
Checkout these posts if you don't know where to start:
- "Badassify your terminal and shell" is a good collection of low hanging fruits to improve your setup.
- "A Beautifully Productive Terminal Experience" has similar tips, plus a long list of plugins to take your terminal to the next level.
- Take inspiration from other people's setups browsing this collection on GitHub. You can checkout mine here too.
- "The Terminal" is a dense collection of tips from a 35 years terminal veteran.