One tool you can face while working in the Linux shell is Vim - the powerful yet mysterious text editor that has been around for decades (and is here to stay).

:scream: But it scares a lot because:

  • it’s very powerful, and you can do a lot of stuff without even understanding what you have done and how to undo it

  • and at the same time, it’s different from the code editors that most people are used to

  • not to say that it might be a quest to exit from it :wink:: I was in this situation many years ago when I literally had to switch to Google to figure out how to exit from “that program”


Since in recent years, I fell in love with DevOps practices, I do some stuff in the terminal whether for work or personal projects, and I use Vim, Nano, or whatever editor is present in any particular system (which I use if I do not want to install another editor on some system or simply cannot install it because the system may be a tiny embedded Linux distro without a package manager as such).

Nonetheless, I still felt myself somewhat worried while using Vim.

To help myself overcome the fear of Vim, last year I signed up for an exam from the Linux Foundation. Why? Because exams dictate and push the learner to become familiar with some stuff in a systematic way covering many of the expected use cases and features (which is beneficial in many senses).

Unfortunately, it turned out that this exam didn’t include the training materials :pensive:, so I had to find them on my own.

To put it short, for any person coming from the world of GUI editors like VS Code / Visual Studio / etc. into the world of Vim for the first time:

  1. learn some basic commands or at least have them at your disposal before opening Vim (or you may not quit it :runner:)

    • pretty good intro is available in the VIM Tutor, simply type vimtutor in your shell to open it
  2. main step: practice, practice, practice :construction_worker:

  3. get some new training materials / read the docs and enter the infinite loop: go to step #2


:man_student: Vim, Bash, and many other tools have a lot of switches/options/features, and the number of their combinations is truly enormous, thus stepping on the road of (hopefully) mastering them often becomes a life-long journey.

P.S.: I passed it, the exam was 50 minutes long and had around a dozen hands-on tasks and every minute was useful: I finished when only 3 or 4 minutes were left on the timer

:v: