Vim is a very powerful and easy to use built-in Linux text editor. In fact, once you master it, vim is the only text editing tool you need to know. Many say it's hard to use, dull and boring but it's all gibberish! I am writing this post to change your views about vim :)
Vi or vim (vi enhanced) are text editors available in Linux distributions by default. It would be quite unfair to simply not be bestowed with their advantages.
If you are used to downloading the file, making changes using a GUI, and then uploading the file back to server, then please stop :p You'll stop doing this once you get to know vi. Besides, these steps are unnecessary and Kafkaesque*, right? This also puts the file in danger by adding extra whitespace which might soon turn into an untraceable production nightmare.
Nerd fact - Kafkaesque meaning: something that has been made complex illogically and in a bizarre way.
- Vim editor is available by default on all Linux distros. You can start working on it right-away.
- Some other Linux utilities, for example, editing cron jobs, work in the same pattern as vim.
- No internet, no mercy. Let's say you are used to working in other (non-default) editing tools but suddenly if you lose access to those tools, and there is no internet access to install them, then you know where you stand. This could happen if you are trouble shooting in someone else's environment.
- Most servers run headless, so in system administration, you don't necessarily have the luxury of a GUI. But vim has got your back; it would always be there.
- As vim is a CLI tool, it is faster than GUI tools.
- Vim keeps the file properties intact. Downloading the file, editing and uploading it increases the chance of whitespace addition. This could be the case with third party text editing tools as well.
- Vim is suitable for all- beginners and advanced users. Vim supports complex string searches, highlighting searches and much more. Some developers even use vim for code editing, sounds strange right? But you can see the potential here :)
It's easy. You need to know the 3 operating modes of Vim and how to switch between them. Keystrokes behave differently in each command mode, and that's the magic of Vim :D Let's dive deeper.
^ to move the cursor to the start of the current line. Press
$ to move the cursor to the end of the current line.
In Vim, there are three modes to work with:
- Command mode.
- Edit mode.
- Visual mode.
When starting vim editor, you land in the command mode by default. This mode allows you to access other modes.
⚠ To switch to other modes, you need to be present in the command mode first
This mode allows you to make changes to the file. To enter edit mode, press 'I' while in command mode.
Note the '-- INSERT' switch at the end of the screen.
This mode allows you to work on a single character, a block of text, or lines of text.
Let's break it down into simple steps. Remember, use the below combinations when in command mode.
- Shift + V → Select multiple lines.
- Ctrl + V → Block mode
- V → Character mode
The visual mode comes into handy when you need to copy and paste or edit lines in bulk.
The extended command mode allows you to perform advanced operations like searching, setting line numbers, and highlighting text. We'll cover extended mode in the next section.
How to stay on track?
If you forget your current mode, just press ESC twice and you would be back in Command Mode.
Copy-paste is known as 'yank' and 'put' in Linux terms.
To copy-paste, follow these steps:
- Select text in visual mode.
- Press 'y' to copy/ yank.
- Move your cursor to the required position and press 'p'.
Any series of strings can be searched with vim using the '/' in command mode.
To search, use
In the command mode, type
:set hls. This will highlight the searches.
Let's search a few strings:
That is a million dollar question! 😃
But it is as easy as abc, trust me.
First, move to command mode(by pressing escape twice) and then use these flags:
Exit without saving →
Exit and save →
In early days of CLI, the keyboards didn't have arrow keys. Hence, navigation was done using the set of available keys, hjkl being one of them.
Although arrow keys would work totally fine, you can still experiment with
hjkl keys to navigate. Some people find this this way of navigation comfortable.
Tip to remember: hang back, jump down, kick up, leap forward.
Remember learning in IT is nothing without hands-on. To quickly access a Linux shell and practice what you have learned, hop on to Replit! It's free! This tutorial was made using replit.
So, this is it ! You have mastered the basics. With this tutorial, you can easily view, edit and save your files using the Vim editor.
I would love to connect with you on any of these platforms.