A list containing commands to use with the linux vi editor.
Starting
* vi /filename/…..start vi, edit specified file
* vi -R /filename/..start vi read-only, edit specified file
* view /filename/…start vi read-only, edit specefied file
Stopping
* :q!……………stop without saving data
* zz…………….save data and stop
* :wq……………save data and stop
* :x…………….save data and stop
Recovering After System Failure
* vi -r ………….display names of files that can be recovered
* vi -r /filename/…start vi, recover specified file
Controlling the Display
* ^L…………….redisplay the current screen
* :set number ……display internal line numbers
* :set nonumber…..do not display internal line numbers
Moving the Cursor
* h……………..move cursor one position left
* j……………..move cursor one position down
* k……………..move cursor one position up
* l……………..move cursor one position right
* LEFT…………..move cursor one position left
* DOWN…………..move cursor one position down
* UP…………….move cursor one position up
* RIGHT………….move cursor one position right
* BACKSPACE………move cursor one position left
* SPACE………….move cursor one position right
* -……………..move cursor to beginning of previous line
* +……………..move cursor to beginning of next line
* RETURN…………move cursor to beginning of next line
* O……………..move cursor to begining of current line
* $……………..move cursor to end of current line
* ^……………..move cursor to first non-space/tab in current line
* 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
* H……………..move cursor to top line
* M……………..move cursor to middle line
* L……………..move cursor to last line
Moving Through the Editing Buffer
* ^F…………….move down(forward) one screenful
* ^B…………….move up(backward) one screenful
* n^F……………move down n screenfuls
* n^B……………move up n screenfuls
* ^D…………….move down a half screenful
* ^U…………….move up a half a screenful
* n^D……………move down n lines
* n^U……………move up n lines
Searching for a Pattern
* /rexp………….search forward for specified regular expression
* /……………..repeat forward search for previous pattern
* ?rexp………….search backward for specified regular expression
* ?……………..repeat backward search for previous pattern
* n……………..repeat last / or ? command, same direction
* N……………..repeat last / or ? ? command, opposite direction
Special Characters to Use in Regular Expressions
* /./……………match any single character except newline
* *……………..match zero or more of the preceding characters
* ^……………..match the beginning of a line
* $……………..match the end of a line
* /<…………….match the beginning of a word
* />…………….match the end of a word
* []…………….match one of the enclosed characters
* [^]……………match any character taht is not enclosed
* \……………..interpret the following symbol literally
Line Numbers
* nG…………….jump to line number n
* 1G…………….jump to first line in editing buffer
* G……………..jump to last line in editing buffer
* :map g1G……….define macro so g will be the same as 1G
Inserting
* i……………..change to insert mode: insert before cursor position
* a……………..change to insert mode: insert after cursor position
* I……………..change to insert mode: insert at start of current line
* A……………..change to insert mode: insert at end of current line
* o……………..change to insert mode: open below current line
* O……………..change to insert mode: open above current line
* ESCAPE…………leave insert mode, change to command mode
Making Changes
* r……………..replace exactly 1 character (do not enter input mode)
* R……………..replace by typing over
* s……………..replace 1 character by insertion
* C……………..replace from cursor to end of line by insertion
* cc…………….replace entire current line by insertion
* S……………..replace entire current line by insertion
* cmove………….replace from cursor to move by insertion
* ~……………..change the case of a letter
Replacing a Pattern
* :s/pattern/replace/………….substitute, current line
* :lines/pattern/replace/ ……..substitute, specified line
* :line, lines/pattern/replace/..substitute, specified range
* :%s/pattern/replace/………..substitute, all lines
Undoing or Repeating a Change
* u……………..undo last command that modified the editing buffer
* U……………..restore current line
* /./……………repeat last command that modified the editing buffer
Controlling the Length of Lines
* rReturn………..replace a character with a newline
* J……………..join lines
* :set wm=n………auto line break within n positions of right margin
Deleting
* x……………..delete character at cursor
* X……………..delete character to left of cursor
* D……………..delete from cursor to end of line
* dd…………….delete entire current line
* dmove ………….delete from cursor to move
* dG…………….delete from current line to end of editing buffer
* d1G……………delete from current line to start of editing buffer
* :/lined/……….delete specified line
* :/line/, /lined/..delete specified range
Copying the Last Deletion
* P……………..copy buffer; insert after/below cursor
* p……………..copy buffer; insert before/above cursor
* xp…………….transpose two characters
* deep…………..transpose two words(start to the left of first word)
* ddp……………transpose two lines
Copying and Moving Lines
* :linecotarget………copy specified line; insert below target
* :line, linecotarget…copy specified range; inster below target
* :linemtarget……….move specified line; insert below target
* :line,linemtarget move.specified range; insert below target
Executing Shell Commands
* :!command………..pause vi, execute specified shell command
* :!!……………..pause vi, execute previous shell command
* :sh……………..pause vi, start a shell
* :!csh ……………pause vi, start a new C-Shell
Reading Data
* :liner file ………insert contents of file after specified line
* :r file…………..insert contents of file after current line
* :liner !command……insert output of command after specified line
* :r !command ………insert output of command after current line
* :r !look pattern…..insert words that begin with specified pattern
Using Shell Commands to Process Data
* n!!command………..execute command on n lines
* !move command……..execute command from cursor to move
* !movefmt………….format lines from cursor to move
Writing Data
* :w……………….write data to original file
* :w file…………..write data to specified file
* :w>> file…………append data to specified file
Changing the File While Editing
* :e file…………..edit the specified file
* :e! file………….edit the specified file, omit automatic check
Abbreviations
* :ab short long….set short as an abbreviation for long
* :ab……………display current abbreviations
* :una short……..cancel abbreviation short
Leave a Reply