Vi or Vim (VI IMproved) is a visual text editor that can be run inside a shell. This has the advantage, that you can quickly write or edit text files in the shell, even over an ssh connection without needing a graphical user interface. Alternatively there is the option to edit files locally (on your desktop computer) in your favourite editor or IDE (e.g. Notepad++, VSCode, ...) and then transfer the files to the remote (super)computer. Visit the file transfer page for more information on that topic. As these tansfers can be a lot of effort, just to fix a missing
; or typo, Vi/Vim can come in handy, as they are available on practically every Unix system.
While it's usage is far from intuitive, a few basics are generally helpful. For a more complete coverage of this editor, why people use it and why you should probably do that too, please take a look at the
vimtutor, the References or the internet in general. There are lots of great resources, presenting reasons for using Vi/Vim and giving detailed instructions for its effective usage.
In Vi/Vim there are six modes from which the four most important ones are listed below.
|Mode Name||Description||How to Reach the Mode from Normal|
|normal||For navigation and manipulation of text. This is the mode that vim will usually start in, which you can usually get back to with pressing
||you are already there or |
|insert||For inserting new text. Insert mode works more or less like you would expect a normal text editor to work with arrow keys for navigation, backspace for deletion and characters for text.|
|visual||For navigation and manipulation of text selections, this mode allows you to perform most normal commands, and a few extra commands, on selected text.|
|command-line||For entering editor commands.|
|search||Searching forward and backward.|
More information about different modes and their uses can be found in the References or the internet.
To open yourfile.txt in Vi/Vim simply enter
$ vim yourfile.txt
From normal mode (press
Esc to get there) you can type commands.
||save the current file|
||save the current file to |
||quit Vi/Vim without saving (discarding changes)|
||to quit Vi/Vim with saving changes|
Inserting and replacing text
||append text after cursor position|
||append text at the end of the current line|
||insert text before cursor position|
||insert text before first character on the current line|
||insert a new line below current line and place cursor on it|
||insert a new line above current line and place cursor on it|
||replace character under cursor by X|
||change into replace mode|
For a tutorial you can call the
and follow the instructions on screen.