I thought of this today so I’ll tell the story of something you will always see on my desk.
I started my first job in information technology in the telecommunication industry across Africa and the Middle East from Cape Town, South Africa.
My first boss was Edwin Kamunda.
I remember stressing in the interview prior to joining his team 😂. I wanted to make a good impression on him.
He was a gentleman from Zimbabwe and I still recall the hours we spent together looking over PHP code and fine tuning support processes to deliver value to our customers. 24/7 support needed working efficient systems in place.
I was never any good at PHP to be honest but Edwin and my colleagues, super smart with impressive PHP skills 🧠.
Everyone has a favourite programming language so I won’t debate that topic. 🐲
Other than learning the business from the ground up with all the IT wizardry, I want to show you this.
It still lives on my desk a little over 15 years later. 👇

I honestly don’t know what else I still have that’s lasted this long. I tend to break things hehe.
Oh and ja my boss did buy the book, he laminated a copy of the quick reference for me as we did a lot of SSH’ing into servers and I was new to the command line.
Why vi matters in modern DevOps:
There are other text editors like vim (vi improved) which extends vi with syntax highlighting, multiple buffers, and scripting capabilities, or emacs which is way more advanced with its Lisp-based extensibility, but I just never got into it fully, maybe I’ll try it again.
On Ubuntu the default would be nano which is much more user friendly with on-screen hints, but again I barely use it for quick edits.
IMHO since vi is available on all POSIX-compliant systems - Oracle Solaris, macOS, HP-UX, any Linux distro, FreeBSD, AIX - knowing vi basics is essential when you’re:
- Troubleshooting production servers where only vi might be available
- Working in minimal Docker containers (like Alpine Linux) where space is at a premium
- Emergency system recovery where graphical tools aren’t available
- Automated deployment scripts where you need a universal editor
Plus I like VSCode for development work 🥋 but when you’re SSHed into a server at 2 AM fixing a critical issue, vi knowledge is invaluable.
Conclusion 🐒
Essential vi commands everyone should know:
ESC ESC
(Gets you back to command mode from any other mode)
then
:q!
to quit without saving or
:wq
to save (write) and quit
Quick survival guide:
i- Enter insert mode (start typing)ESC- Return to command mode:w- Save (write) file:q- Quit:wqor:x- Save and quit:q!- Quit without saving (force quit)/searchterm- Search for textdd- Delete current lineyy- Copy (yank) current linep- Paste
in case you are looking for that 😁
It still amazes me how a single person can have such an impact on someone else’s life.
My boss Edwin Kamunda tragically passed away in a bus accident not long after he gave that to me.
This O’Reilly vi quick reference card is still one of my most valued possessions.
Thanks Edwin for teaching me to work hard but smart and to do your very best everyday, as that day might be your last.