The most attractive feature that VI has to offer is the block visual mode. It is amazingly powerful, especially for those who do coding. With it you can add characters to or remove characters a block of text in a column fashion. For example, you can add characters to a block of text (Figure 1) instantly (Figure 2).
Some of the commands that you use for every session can be placed in a file named “.vimrc” in your home folder.
Personally, when editing code, I like to have my tabs to be of 4 characters wide. I also want the tab characters to be changed to 4 spaces. So in my .vimrc file, I place the following lines:
set smartindent set tabstop=4 set shiftwidth=4 set expandtab
I can then code and have the next line auto-indented. (There is
another option called
autoindent but it is not as good
With the options set, the lines can also be indented in command mode or visual mode with the characters >> (shift dot key twice) and un-indented with << (shift comma key twice).
Changing multiple characters to uppercase
In visual mode, with the characters to change selected, press U (uppercase) to change them to uppercase. Press u (lowercase) to change them to lowercase.
In command mode, the same effect can be achieved on a single character by placing the cursor on the letter and press the tilde sign (~).
Jumping from line to line
You can jump from line to line by marking them first. To mark a line, press the key ’m’ followed by a letter e.g. ma
This will mark the line your cursor is at in the buffer ‘a’.
Then when you are at any other position in the file, press the aprostrophe key (‘) followed by the same letter e.g. ‘a
This will bring the cursor (and the screen) to the line that you marked.
Shortcut Movement Keys
Aside from the arrow keys and the letters h, j, k, and l, there are other movement keys.
w - move to the beginning of the next word
W - move to the beginning of the next word following a space
b - move to the beginning of the previous word
B - move to the beginning of the previous word preceding a space
e - move to the end of the next word
E - move to the end of the next word following a space
( - move to the start of the previous sentene
) - move to the start of the next sentence
- - move to the start of the line that is above the current position of the cursor
+ - move to the start of the line that is below the current position of the cursor
% - find the matching bracket/brace of the one the cursor is positioned at
More on VI…
H - position the cursor at the top of the screen (left most position)
M - position the cursor in the middle of the screen (left most position)
L - position the cursor in the bottom of the screen (left most position)
G - position the cursor at the bottom of the file (left most position); last line in file
- gg - position the cursor at the top of the file (left most position); first line in file
:n - position the cursor at line n of the file
This is a one of many mini-posts that I will do on using the VI editor. I’ve recently bumped into some pages that contains valuable information on how to use VI. The problem with it is its too wordy and that makes it hard to look for information when you need it.
So this post and the following ones will use tags relevant to the subject to help the search for relevant information quicker.
D - delete the characters of the line after the cursor position
C - delete the characters of the line after the cursor position and change to insert mode
R - change to insert & overwrite mode; it’s like pressing the Ins key on the keyboard; whereas ‘r’ replaces a single character, ‘R’ replaces every character that you type over
s - behaves like ‘x’ but switches to insert mode
S - deletes the whole line and change to insert mode
When doing some simple programming, I like to use the Vim editor instead of using a full-blown IDE. It’s a good editor but I want to use it more efficiently. Some of the things I customise for myself are:
- auto indentation - this is a must for programmers
- tab size - to indent I use the tab key but different applications represent the tab character with different number of spaces; I like mine to be 4
- I like my colours to be different
These settings are saved in a file named .vimrc in each user’s home directory. Simply save the vi commands in this file to have your customisation. But remember to remove the semicolons. Below is my .vimrc contents to achieve my customisation.
set tabstop=4 set autoindent colorscheme wombat
wombat is a colour scheme file which I saved in the directory /usr/share/vim/vim71/colors/.
P.S. While searching for some help on setting the file types in Vim, I found this page in wikibooks.org that describes the tips a programmer would use. It’s unbelievably useful. Do check it out if you use vi editor!
Another page with some useful tips is http://tips.webdesign10.com/general/vim