Vim is a powerful command-line based text editor that has enhanced the functionalities of the old Unix Vi text editor. It is one the most popular and widely used text editors among system administrators and programmers. As the name suggests, VIM means “vi improved” as it is just an advanced version of the default Linux text editor. Vim supports automatic commands, digraph inputs (useful in programming), split and session screens, tabs and tagging, and does not contain a GUI. The only way to initiate it is to start it directly from the command line. The interface is user-unfriendly, while some commands are not intuitive.
The Vim editor in Linux environment can be installed by using the default package manager, as shown below:
$ sudo apt install vim-enhanced [On Debian, Ubuntu and Mint] $ sudo dnf install vim-enhanced [On RHEL, CentOS and Fedora] $ sudo pacman -S vim-enhanced [On Arch Linux and Manjaro] $ sudo zypper install vim-enhanced [On OpenSuse]
Vim can be used for creating, editing, and saving documents from the command line. It operates in two different modes: - Command mode - Insert mode By default, VIM is started in command mode:
$ vim (name of the file)
$ vim (full path of the file)
For editing the file Vim must be in Insert mode and this can be achieved by pressing the letter “i“ on the keyboard (“I” stays for Insert). When in Insert mode, the mark-up
---INSERT--- is shown at the bottom of the terminal page.
After editing is finished, Vim should exit from Insert mode by pressing the escape
(esc) key. By this, Vim returns in Command mode, and the document can be saved.
Vim Editing commands:
Commands are executed in Command mode only. Please note that the Vim editor is case-sensitive.
i - Insert at cursor (goes into insert mode) a - Write after cursor (goes into insert mode) A - Write at the end of line (goes into insert mode) ESC - Terminate insert mode. u - Undo last change U - Undo all changes to the entire line. o - Open a new line (goes into insert mode) dd - Delete line. 3dd - Delete 3 lines. D - Delete contents of line after the cursor. C - Delete contents of a line after the cursor and insert new text. Press ESC key to end insertion. dw - Delete word. 4dw - Delete 4 words. cw - Change word x - Delete character at the cursor. r - Replace character. R - Overwrite characters from cursor onward. s - Substitute one character under cursor continues to insert. S - Substitute entire line and begin to insert at the beginning of the line. ~ - Change case of individual character.
Moving inside the file
Moving inside the file is possible only in Command mode. Default keys for navigation are as follows:
- k - Move cursor up
- j - Move cursor down
- h - Move cursor left
- l - Move cursor right The arrow keys on the keyboard can be used for navigation as well.
Saving and closing the file
Saving changes and closing the file can also only be done in Command mode:
Shift+zz - save the file and quit. :w - save the file but keep it open :q - quit without saving :wq - save the file and quit
Nano is another popular text editor also used in the UNIX operating systems. It comes packed with many additional functionalities, which make it very powerful and advanced text editor. Similar to Vim, Nano runs in command line interface only.
Nano is easy-to-use editor for both new and advanced Linux users. It enhances usability by providing customizable key bindings.
Nano can be installed in Linux environment by using the default package manager:
$ sudo apt install nano [On Debian, Ubuntu, and Mint] $ sudo dnf install nano [On RHEL, CentOS and Fedora] $ sudo pacman -S nano [On Arch Linux and Manjaro] $ sudo zypper install nano [On OpenSuse]
The following command verifies successful installation and shows the version:
$ nano --version
Opening and Creating Files
Opening an existing file or creating a new one can be achieved by typing “nano” followed by the file name:
$ nano filename
This opens a new Nano window for editing the content.
There is a list of basic command shortcuts at the bottom of the window, which can be used inside Nano. All commands are prefixed with either
M character. The caret symbol
(^) represents the
Ctrl key. For example, the
^J command means pressing
J keys at the same time. The letter M represents the
A list of all commands can be retrieved by pressing
Please note that file-read permissions are required to open a file.
Unlike Vim, Nano is a modeless editor – meaning editing the text can be started immediately after opening the file.
Ctrl+_ moves the cursor to a specific line and character number. In this case, the menu on the bottom of the screen changes and the number(s) in the
“Enter line number, column number:” field should be entered, followed by pressing the Enter key.
Searching and replacing
Searching for a specific text can be done by pressing
Ctrl+w, typing the search term, and pressing the Enter key. The cursor will move to the first match, and pressing
Alt+w moves the cursor to the next match.
Search/Replace is triggered by pressing
Ctrl+\, so the search term and the replacement text should be entered. After this, the editor moves to the first match and asks for a permission for replacement. After hitting
N the cursor moves to the next match. Pressing
A will replace all matches.
Copying, cutting, and pasting
For selecting any text, the cursor should be moved to the beginning of the text and
Alt+a should be pressed. This will set a selection mark (selection start). Moving the cursor to the end of the text highlights the selection.
The selection can be cancelled by pressing
Ctrl+6 or copied into the clipboard by pressing
Ctrl+k cuts the selected text. Cutting whole lines can be achieved by moving the cursor to the desired line and pressing
Ctrl+k. Multiple lines can be cut by pressing
Ctrl+k multiple times.
For pasting the selection, the cursor should be moved to the desired location and
Ctrl+u should be pressed.
Saving and exiting
The file can be saved by pressing
Ctrl+o. If the file does not exist, it will be created.
Exiting Nano is done by pressing
Ctrl+x. In case there are unsaved changes, the editor will ask whether they should be saved.
Please note that file-write permissions are required for saving the file. In case it is a newly created file, directory-write permissions are needed.