Monday, September 22, 2008

vi command

Cursor control and position

h    Left    
Text Link Ads

Editing
j    Down
k    Up
l (or spacebar)    Right
w    Forward one word
b    Back one word
e    End of word
(    Beginning of current sentence
)    Beginning of next sentence
{    Beginning of current paragraph
}    Beginning of next paragraph
[[    Beginning of current section
]]    Beginning of next section    A    Append to end of current line
0    Start of current line    i    Insert before cursor
$    End of current line    I    Insert at beginning of line
^    First non-white character of current line    o    Open line above cursor
+ or RETURN    First character of next line    O    Open line below cursor
-    First character of previous line    ESC    End of insert mode
n |    character n of current line    Ctrl-I    Insert a tab
H    Top line of current screen    Ctrl-T    Move to next tab position
M    Middle line of current screen    Backspace    Move back one character
L    Last line of current screen    Ctrl-U    Delete current line
nH    n lines after top line of current screen    Ctrl-V    Quote next character
nL    n lines before last line of current screen    Ctrl-W    Move back one word
Ctrl-F    Forward one screen    cw    Change word
Ctrl-B    Back one screen    cc    Change line
Ctrl-D    Down half a screen    C    Change from current position to end of line
Ctrl-U    Up half a screen    dd    Delete current line
Ctrl-E    Display another line at bottom of screen    ndd    Delete n lines
Ctrl-Y    Display another line at top of screen    D    Delete remainer of line
z RETURN    Redraw screen with cursor at top    dw    Delete word
z .    Redraw screen with cursor in middle    d}    Delete rest of paragraph
z -    Redraw screen with cursor at bottom    d^    Delete back to start of line
Ctrl-L    Redraw screen without re-positioning    c/pat    Delete up to first occurance of pattern
Ctrl-R    Redraw screen without re-positioning    dn    Delete up to next occurance of pattern
/text    Search for text (forwards)    dfa    Delete up to and including a on current line
/    Repeat forward search    dta    Delete up to, but not including, a on current line
?text    Search for text (backwards)    dL    Delete up to last line on screen
?    Repeat previous search backwards    dG    Delete to end of file
n    Repeat previous search    J    Join two lines
N    Repeat previous search, but it opposite direction    p    Insert buffer after cursor
/text/+n    Go to line n after text    P    Insert buffer before cursor
?text?-n    Go to line n before text    rx    Replace character with x
%    Find match of current parenthesis, brace, or bracket.    Rtext    Replace text beginning at cursor
Ctrl-G    Display line number of cursor    s    Substitute character
nG    Move cursor to line number n    ns    Substitute n characters
:n    Move cursor to line number n    S    Substitute entire line
G    Move to last line in file    u    Undo last change
          U    Restore current line
Text Link Ads
   x    Delete current cursor position
X    Delete back one character
nX    Delete previous n characters
.    Repeat last change
~    Reverse case
y    Copy current line to new buffer
yy    Copy current line
"xyy    Copy current line into buffer x
"Xd    Delete and append into buffer x
"xp    Put contents of buffer x
y]]    Copy up to next section heading
ye    Copy to end of word
          
File Handling
        
:w    Write file    







:w!    Write file (ignoring warnings)
:w! file    Overwrite file (ignoring warnings)
:wq    Write file and quit
:q    Quit
:q!    Quit (even if changes not saved)
:w file    Write file as file, leaving original untouched
ZZ    Quit, only writing file if changed
:x    Quit, only writing file if changed
:n1,n2w file    Write lines n1 to n2 to file
:n1,n2w >> file    Append lines n1 to n2 to file
:e file2    Edit file2 (current file becomes alternate file)
:e!    Reload file from disk (revert to previous saved version)
:e#    Edit alternate file
%    Display current filename
#    Display alternate filename
:n    Edit next file
:n!    Edit next file (ignoring warnings)
:n files    Specify new list of files
:r file    Insert file after cursor
:r !command    Run command, and insert output after current line

No comments: