Linux User Group of Gaia's Tip, Tricks, How-tos, and FAQs
Vim
You select any Linux/Unix OS distribution; from the spartan linux which fits on a floppy to the industry heavy weights like redhat and suse; you are guaranteed to find the vi editor. So it is really worth ones time to learn how to use this powerful but simple editor. Vim is the modern version of the vi editor. Learning to use vim (vi) contains an initial learning curve. But the power it gives the user to accomplish complex text manipulation with just a few keystrokes makes the trouble taken to learn worth it. Here I will explain a few commonly used commands in Vim. Vim (vi) is an editor with modes of operation. There are three modes of operation in vim. They are as follows :
Command mode
This is the default when you start vi. In command mode, the keys entered are treated as commands, rather than as text input. Most commands are single letters. Case (upper or lower) is significant. Some commands can be combined, or prefixed with qualifiers.
Commands:
Cursor Movement Commands
h - j - k - l - These commands move the cursor left - down - up - right in that order.
n| - Moves the cursor to the n'th character on the line. If the character position is invalid, vi beeps. Just "|" by itself moves the cursor to the begining of the line.
0 - Moves the cursor to the begining of the line.
^ - Moves the cursor to the first non blank character in the line.
$ - Moves the cursor to the end of the line.
fx - (where x is any character) Searches forward for the next occurence of that character from the cursor position, on the current line only.
Fx - Works the same as fx but in reverse direction.
[wW],[bB] - Move one word forward and backward respectively.
H - Moves the cursor to the top (highest) line on the screen.
M - Moves the cursor to the middle line on screen
L - Moves the cursor to the lowest line on screen
Ctrl-d - Scrolls down by half page.
Ctrl-u - Scrolls up by half page
Ctrl-f, Ctrl-b - Scroll forward and backward a page
nG - Where "n" is a number.goes to that line number in the file. Example, 1G goes to the top of the file. 157G to the 157th line and so on.
Mx - Where "x" is any single letter, marks the current line with a marker called x. Later you can move back to that line with the command 'x. Note : To go to the exact cursor position of the mark, use ` instead of the forward single quote.
`` - (This is a single quote typed twice, not a double quote) acts as a toggle and takes you to the position you were at before. So you can repeatedly switch between two positions in the file.
Text Modification Commands:
x - Deletes the character under the cursor
rn - (where "n" is any character) replaces the character under the cursor with the character n
cw - (change word) puts you into input mode by replacing the word that the current cursor is on
dw - (delete word) deletes the current word you are on
dd - (delete line) deletes the current line you are on
yy - yanks (copies) a line into the buffer
p - pastes the yanked line at the position of the cursor
Input Mode
Input mode means that what ever you type (except the Escape key) is understood by vi to be the text that you want to enter into the file, and is not a command. There are many ways of entering input mode. But only one way of exiting Input Mode - Which is by typing Escape, which puts you back into the Command mode.
Commands:
i - Which means insert text before the cursor. This command puts you in Input Mode
I - Same as above but it starts at the begining of the line
a - Which means apend text after the cursor. This command puts you in Input Mode
A - Same as above but starts appending at the end of the current line
R - Replace characters.Puts you in another kind of input mode (called replace mode) in which what ever you type overwrites whatever is under the cursor. This goes on till you type Esc
o - Which means open mode. Opens a new line below the current line
O - Opens a new line above the current line
Last Line Mode
In this mode, you are actually entering commands to the ex editor, on which vi is built. You get into the last line mode from the command mode by typing a colon (:) character. The colon, and whatever you type after it, is displayed on the last line of the screen (which is how this mode gets its name). All characters you type after the colon, until the carriage return, are treated as ex commands.
Commands:
:w - Saves the file in the same name that you opened it with
:w filename - Similar to "save as" command. In vim, you can also use the :sav filename command to accomplish the same function
:n,m w filename - This saves the contents of line numbers n to m to the given filename. Use $ instead of m to refer to the last line number without knowing what its value is
:e filename - This is to start editing another file instead of the current one. Once you have used the e command, you can toggle back and forth between the two files by the command :e#. If you have made a lot of changes (and not saved), and now want to discard all of them, type :e!
:r filename - The read command, reads in the file and inserts its contents below the current line.
Using Abiword to convert filetypes on the command line
Abiword is a wordprocessor which can be used as an alternative to popular commercial counterparts. It comes installed by default on most linux distributions. Did you know that you can convert from one file type to another in the command line using abiword? This is how it is done. First fire up a terminal and then enter the following command:
The above command converts the 'myfile.doc' MSWord document into a new file of abiword format by the same name - 'myfile.abw' . If you want the file to be of different name, do the following: To convert an doc file to OpenOffice.org format (odt) :You get the drift ?? You can use the above steps to convert to/from any format supported by abiword. And if you want to convert a directory full of MSWord documents to abiword or some other format, you can use the following simple script:
This would convert all documents in the current directory into OpenOffice.org format.