Linux: vi commands

Linux: vi commands

Linux: vi commands 150 150 Roderick Derks

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 

Roderick Derks

Liefhebber van fietsen, van het oplossen van IT puzzels, en van het delen van informatie om anderen te helpen.

All stories by:Roderick Derks

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.

    Your Name (required)

    Your Email (required)

    Subject

    Your Message

      Your Name (required)

      Your Email (required)

      Subject

      Your Message