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 or ESC
|
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,A,i,I,o,O
|
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,V,Ctrl-V (Vim-only)
|
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.
Basic Commands
To open yourfile.txt in Vi/Vim simply enter
$ vim yourfile.txt
From normal mode (press Esc
to get there) you can type commands.
File handling
:w |
save the current file |
:w filename |
save the current file to filename
|
:q |
quit Vi/Vim |
:q! |
quit Vi/Vim without saving (discarding changes) |
:wq or :x |
to quit Vi/Vim with saving changes |
Inserting and replacing text
a |
append text after cursor position |
A |
append text at the end of the current line |
i |
insert text before cursor position |
I |
insert text before first character on the current line |
o |
insert a new line below current line and place cursor on it |
O |
insert a new line above current line and place cursor on it |
rX |
replace character under cursor by X |
R |
change into replace mode |
Tutorial
For a tutorial you can call the
$ vimtutor
and follow the instructions on screen.