h move cursor one character to left j move cursor one line down k move cursor one line up l move cursor one character to right w move cursor one word to right b move cursor one word to left 0 move cursor to beginning of line $ move cursor to end of line nG move cursor to line n 1G move cursor to 1st line G move cursor to last line control-f scroll forward one screen control-b scroll backward one screen gx jump to method definition zi switch folding on or off za toggle current fold open/closed zc close current fold zR open all folds zM close all folds zv expand folds to reveal cursor i insert to left of current cursor position (end with ESC) a append to right of current cursor position (end with ESC) dw delete current word (end with ESC) cw change current word (end with ESC) r change current character ~ change case (upper-, lower-) of current character dd delete current line D delete portion of current line to right of the cursor x delete current character dgg delete current line to the top of the file jdG delete all lines below current line ma mark currrent position d`a delete everything from the marked position to here `a go back to the marked position p dump out at current place your last deletion (``paste'') u undo the last command . repeat the last command J combine (``join'') next line with this one :w write file to disk, stay in vi :q! quit VI, do not write file to disk, ZZ write file to disk, quit vi :r filename read in a copy of the specified file to the current buffer /string search forward for string (end with Enter) ?string search backward for string (end with Enter) n repeat the last search (``next search'') N repeat the last search backward /\cstring case insensitive prepend with \c :s/s1/s2 replace (``substitute'') (the first) s1 in this line by s2 :lr/s/s1/s2/g replace all instances of s1 in the line range lr by s2 (lr is of form 'a,b', where a and b are either explicit line numbers, or . (current line) or $ (last line) :map k s map the key k to a string of vi commands s (see below) :abb s1 s2 expand the string s1 in append/insert mode to a string s2 (see below) % go to the "mate," if one exists, of this parenthesis or brace or bracket (very useful for programmers!) :%s/foo/bar/g replace every 'foo' with a 'bar' :!command execute a command from vi :%!perltidy format perl code using perltidy from within vi :%!perltidy -l=0 ignore line length :noh remove search highlighting :sp to split window horizontally :vsp to split window vertically <ctrl-w>h|j|k|l to navigate between split windows <ctrl-w>q to quit split window Comment/Uncomment: Press Ctrl+V and go down until the last commented line and press x, that will delete all the # characters vertically. For commenting a block of text is almost the same: First, go to the first line you want to comment, press Ctrl+V, and select until the last line. Second, press Shift+I, then #, then Esc. Indent several lines at once: Press Ctrl+V and go down until the last line to be indented, press Shift+> Cut/Copy and Paste: Position the cursor where you want to begin cutting. Press v (or upper case V if you want to cut whole lines). Move the cursor to the end of what you want to cut. Press d to cut or y to copy. Move to where you would like to paste. Press P to paste before the cursor, or p to paste after. Copy and paste can be performed with the same steps, only pressing y instead of d in step 4. The name of the mark used is related to the operation (d:delete or y:yank).
9.19.2013
Vi Text Editor My Frequently Used Commands
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment