Working with files | |
Vim command | Action |
:e filename | Open a new file. You can use the Tab key for automatic file name completion, just like at the shell command prompt. |
:w filename | Save changes to a file. If you don't specify a file name, Vim saves as the file name you were editing. For saving the file under a different name, specify the file name. |
:q | Quit Vim. If you have unsaved changes, Vim refuses to exit. |
:q! | Exit Vim without saving changes. |
:wq | Write the file and exit. |
:x | Almost the same as :wq, write the file and exit if you've made changes to the file. If you haven't made any changes to the file, Vim exits without writing the file. |
Moving around in the file | |
These Vim commands and keys work both in command mode and visual mode. | |
Vim command | Action |
j or Up Arrow | Move the cursor up one line. |
k or Down Arrow | Down one line. |
h or Left Arrow | Left one character. |
l or Right Arrow | Right one character. |
e | To the end of a word. |
E | To the end of a whitespace-delimited word. |
b | To the beginning of a word. |
B | To the beginning of a whitespace-delimited word. |
0 | To the beginning of a line. |
^ | To the first non-whitespace character of a line. |
$ | To the end of a line. |
H | To the first line of the screen. |
M | To the middle line of the screen. |
L | To the the last line of the screen. |
:n | Jump to line number n. For example, to jump to line 42, you'd type :42 |
Inserting and overwriting text | |
Vim command | Action |
i | Insert before cursor. |
I | Insert to the start of the current line. |
a | Append after cursor. |
A | Append to the end of the current line. |
o | Open a new line below and insert. |
O | Open a new line above and insert. |
C | Change the rest of the current line. |
r | Overwrite one character. After overwriting the single character, go back to command mode. |
R | Enter insert mode but replace characters rather than inserting. |
The ESC key | Exit insert/overwrite mode and go back to command mode. |
Deleting text | |
Vim command | Action |
x | Delete characters under the cursor. |
X | Delete characters before the cursor. |
dd or :d | Delete the current line. |
Entering visual mode | |
Vim command | Action |
v | Start highlighting characters. Use the normal movement keys and commands to select text for highlighting. |
V | Start highlighting lines. |
The ESC key | Exit visual mode and return to command mode. |
Editing blocks of text | |
Note: the Vim commands marked with (V) work in visual mode, when you've selected some text. The other commands work in the command mode, when you haven't selected any text. | |
Vim command | Action |
~ | Change the case of characters. This works both in visual and command mode. In visual mode, change the case of highlighted characters. In command mode, change the case of the character uder cursor. |
> (V) | Shift right (indent). |
< (V) | Shift left (de-indent). |
c (V) | Change the highlighted text. |
y (V) | Yank the highlighted text. In Windows terms, "copy the selected text to clipboard." |
d (V) | Delete the highlighted text. In Windows terms, "cut the selected text to clipboard." |
yy or :y or Y | Yank the current line. You don't need to highlight it first. |
dd or :d | Delete the current line. Again, you don't need to highlight it first. |
p | Put the text you yanked or deleted. In Windows terms, "paste the contents of the clipboard". Put characters after the cursor. Put lines below the current line. |
P | Put characters before the cursor. Put lines above the current line. |
Undo and redo | |
Vim command | Action |
u | Undo the last action. |
U | Undo all the latest changes that were made to the current line. |
Ctrl + r | Redo. |
Search | |
Vim command | Action |
/pattern | Search the file for pattern. |
n | Scan for next search match in the same direction. |
N | Scan for next search match but opposite direction. |
Replace | |
Vim command | Action |
:rs/foo/bar/a | Substitute foo with bar. r determines the range and a determines the arguments. |
The range (r) can be | |
nothing | Work on current line only. |
number | Work on the line whose number you give. |
% | The whole file. |
Arguments (a) can be | |
g | Replace all occurrences in the line. Without this, Vim replaces only the first occurrences in each line. |
i | Ignore case for the search pattern. |
I | Don't ignore case. |
c | Confirm each substitution. You can type y to substitute this match, n to skip this match, a to substitute this and all the remaining matches ("Yes to all"), and q to quit substitution. |
Examples | |
:452s/foo/bar/ | Replace the first occurrence of the word foo with bar on line number 452. |
:s/foo/bar/g | Replace every occurrence of the word foo with bar on current line. |
:%s/foo/bar/g | Replace every occurrence of the word foo with bar in the whole file. |
:%s/foo/bar/gi | The same as above, but ignore the case of the pattern you want to substitute. This replaces foo, FOO, Foo, and so on. |
:%s/foo/bar/gc | Confirm every substitution. |
:%s/foo/bar/c | For each line on the file, replace the first occurrence of foo with bar and confirm every substitution. |
Friday, February 19, 2010
vim Cheat Sheet
Labels:
cheatsheet,
guide,
vi,
vim
Thursday, February 18, 2010
CentOS Sendmail error /etc/mail/submit.cf: line 544: --- Group writable directory
I was getting this error, when tried to send mail via SendMail server.
To test sendmail from ssh, use this:
echo "test" | mail -s testsubject abc@xyz.com
(replace abc@xyz.com with your email address, like hotmail or gmail etc.)
On doing this I was getting the above mentioned error.
Some forums said that the issue is because of permission problems. So run following command:
chmod -R 0755 /etc/mail
It will set 755 rights to all files in this folder.
It works in some cases but in my case it wasn't.
The solution for this is to edit the respective file, like /etc/mail/submit.cf
You can use vi to edit this.
Jump to line number mentioned in error. 544 in our case.
Done. Now try send the mail and it will work.
In some case the error line number and file changes, like e.g.
/etc/mail/sendmail.cf : line 91 : fileclass : Cannot open '/etc/mail/local-host-names' : World writable directory
Or
/etc/mail/sendmail.cf: line 588: fileclass: cannot open '/etc/mail/trusted-users': World writable directory
Etc etc..
Same procedure will be applied to this. Go to respective file and respective line number.
And you will find either Ft or Fw in start
Just add -o after Ft or Fw like Ft-o /etc.... and Fw-o /etc...
This should solve the issue...
/etc/mail/submit.cf: line 544: fileclass: cannot open '/etc/mail/trusted-users': Group writable directorySendmail is default mail server for CentOS.
To test sendmail from ssh, use this:
echo "test" | mail -s testsubject abc@xyz.com
(replace abc@xyz.com with your email address, like hotmail or gmail etc.)
On doing this I was getting the above mentioned error.
Some forums said that the issue is because of permission problems. So run following command:
chmod -R 0755 /etc/mail
It will set 755 rights to all files in this folder.
It works in some cases but in my case it wasn't.
The solution for this is to edit the respective file, like /etc/mail/submit.cf
You can use vi to edit this.
Jump to line number mentioned in error. 544 in our case.
(Note: To see line numbers in vi, press Ctrl+G to get the line number of your cursor)This is the line:
Ft/etc/mail/trusted-usersNow just change it to:
Ft-o /etc/mail/trusted-users
Done. Now try send the mail and it will work.
In some case the error line number and file changes, like e.g.
/etc/mail/sendmail.cf : line 91 : fileclass : Cannot open '/etc/mail/local-host-names' : World writable directory
Or
/etc/mail/sendmail.cf: line 588: fileclass: cannot open '/etc/mail/trusted-users': World writable directory
Etc etc..
Same procedure will be applied to this. Go to respective file and respective line number.
And you will find either Ft or Fw in start
Just add -o after Ft or Fw like Ft-o /etc.... and Fw-o /etc...
This should solve the issue...
Subscribe to:
Posts (Atom)