Vim
General
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.
Modes
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 ESC . |
you are already there |
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. | a
|
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. | v
|
command-line | For entering editor commands. | :
|
More information about different modes and their uses can be found in the References or the internet.
Absolute Basics
To open yourfile.txt in Vi/Vim simply enter
$ vim yourfile.txt
From normal mode (press Esc
to get there) you can type
:q |
to quit Vi/Vim |
:w |
to save the current file |
:q! |
to quit Vi/Vim without saving (discarding changes) |
:x |
to quit Vi/Vim with saving changes |
For a tutorial you can call the
$ vimtutor
and follow the instructions on screen.