Google

Lubee's Blog--Digtial IC Fan's Home

WELCOME IC FANS' HOME! --ASIC/IC Design,Logical Design,STA,Digital IC Design,Synthesis, and so on.

2008-01-05

VIM summary -- List of commands

List of commands

This is a list of commands that I often use. It's just a small fraction of the vim commands. But I'll add new things when I have time.

Please note that a command starting with a colon or a slash or a question mark must be ended by the Enter key -- that is not indicated in my list, while other command doesn't need the Enter key.

File and window commands

:e filename

open a new file

:e! filename

open a new file without saving the current one

:w filename

write buffer to file

:w! filename

write buffer to an existing file

:r filename

read file to buffer

:new

split window and load an empty file

:split

split window

:new filename

open file in a sub window

Ctrlww

Jump to next window

:n

Edit the next file

Moving by text objects

h

move the cursor one position left

j

move the cursor one position down

k

move the cursor one position up

l

move the cursor one position right

w

move cursor forward to first character of next word

e

move cursor forward to last character of next word

b

move cursor backward to first character of previous word

W

same as w; ignore punctuation

E

same as e; ignore punctuation

B

same as b; ignore punctuation

)

move forward to next sentence beginning

(

move backward to previous sentence beginning

}

move forward to next paragraph beginning

{

move backward to previous paragraph beginning

Move to absolute position in a line

0

move cursor to beginning of current line

$

move cursor to end of current line

^

move cursor to first non-space/tab in current line

Move to absolute position in the file

G

jump to the end of the file

gg

jump to the beginning of the file

1G

jump to the beginning of the file

nG

jump to nth line

:n

jump to nth line

Move by screen

Ctrlf

move cursor forward by one screen

Ctrlb

move cursor backward by one screen

Move to absolute position on the screen

H

move cursor to top line

M

move cursor to middle line

L

move cursor to last line

Other

''

move cursor to previous position

'x

mover cursor to marker x, where x is a letter from a to z

%

move cursor to the match of a parethesis, bracket or brace

SPACE

move cursor one position right

ENTER

move cursor to beginning of next line

Summary of inserting commands

i

change to insert mode; begin insertion at the cursor

a

change to insert mode; begin insertion after the cursor

I

change to insert mode; begin insertion at the beginning of the current line (=^i)

A

change to insert mode; begin insertion at the end of the current line (=$a)

o

change to insert mode; open a new line below the current line

O

change to insert mode; open a new line above the current line

Summary of deleting commands

x

delete one character at cursor

X

delete character in the left

D

delete from cursor to end of line

dd

delete the entire current line

dmove

delete from cursor to the location specified by the cursor motion command move. Eg: dw d2w dG dgg d0 d$ ... Try them

Summary of copying commands

Y

Copy current line to unnamed buffer

yy

Copy current line to unnamed buffer

"cyy

copy the current line to buffer named or numbered c

nyy

copy n lines below current line

"cnyy

copy n lines to buffer named or numbered c

Summary of pasting commands

p

put the contents of the unnamed buffer below the current line or after the cursor position

P

put the contents of the unnamed buffer above the current line or before the cursor position

"cp

put the contents of the buffer named or numbered c below the current line or after the cursor position c

"cP

put the contents of the buffer named or numbered c above the current line or below the cursor position c

Summary of vim replacing commands

rx

replace the character at cursor with the new character x

R

replacing by typing over (enter replace mode)

s

replace one character by insertion (enter insert mode)

C

replace from cursor to end of line (enter insert mode)

cc

replace entire current line (enter insert mode)

S

=cc

cmove

replace from cursor to move (a cursor-moving command) (enter insert mode)

Search commands

/pattern

search forward for a pattern

?pattern

search backward for a pattern

n

jump to the next occurrence of the last searched pattern

N

jump to the next occurrence of the last searched pattern in the opposite direction of the search

*

jump to the next occurrence of the word at the current cursor position

#

jump to the previous occurrence of the word at the current cursor position

Inline character search

fc

search for a character in the current line

Fc

search for a character in the current line in backward direction

;

repeat the last f or F search in the same direction

,

repeat the last f or F search in the opposite direction

Substitute command esamples

:s/old/new/

substitute the first old in current line with new

:s/old/new/g

substitute all olds in current line with new

:s/old/new/gc

substitute all olds in current line with new, with your confirm

:n1,n2s/old/new/g

substitute all olds between the two lines with new

:n1,$s/old/new/g

substitute all olds from line n1 to the end with new

:%s/old/new/g

substitute all olds with new

:%s/old/new/gc

substitute all olds with new, with your confirm

Miscellaneous commands

mc

mark current line with an letter c

'c

move cursor to the line marked with the letter c

qc...q

record a sequence of key strokes to the register c

@c

play back the key strokes recorded in register c

n@c

play back the key strokes recorded in register c n times

:rangeg/pattern/cmd

execute the cmd for each line in range matching the pattern

:rangev/pattern/cmd

execute the cmd for each line in range not matching the pattern

v

enter visual mode

V

enter visual lines mode

Ctrlv

enter visual block mode

:f

display information of the file

Ctrl-g

=:f

u

undo the most recent change

CtrlR

redo the last undone change

.

repeat the most recent command that made a change.

:!command

execute a shell command

:r!command

insert the output of a shell command after the cursor

:sh

start a shell (type exit to return to vim)

Cool commands

rENTER

break a line

J

join the current line and the next line.

~

toggle the case of the letter.

ga

show ASCII value of a character.

:as

show ASCII value of a character.

%

move cursor to match a parenthesis, bracket or brace

xp

exchanging two characters

ddp

exchanging two lines

Labels:

0 Comments:

Post a Comment

Subscribe to Post Comments [Atom]

<< Home