ict.ken.be

Delivering solid user friendly software solutions since the dawn of time.

vi

Categories: Linux

vi editor commands

  • [ins] edit text
  • [esc] return back from editing
  • :w save
  • :wq save and exit
  • ? search
  • :q! exit without saving
  • a number preceding any vi command tells vi to repeat that command that many times.

cursor movement

  • h move left (backspace)
  • j move down
  • k move up
  • l move right (spacebar)
  • [ret] move to the beginning of the next line
  • $ last column on the current line
  • 0 move cursor to the first column on the current line
  • ^ move cursor to first nonblank column on the current line
  • w move to the beginning of the next word or punctuation mark
  • W move past the next space
  • b move to the beginning of the previous word or punctuation mark
  • B move to the beginning of the previous word, ignores punctuation
  • e end of next word or punctuation mark
  • E end of next word, ignoring punctuation
  • H move cursor to the top of the screen 
  • M move cursor to the middle of the screen
  • L move cursor to the bottom of the screen

screen movement

  • G move to the last line in the file
  • xG move to line x
  • z+ move current line to top of screen
  • z move current line to the middle of screen
  • z- move current line to the bottom of screen
  • ^F move forward one screen
  • ^B move backward one line
  • ^D move forward one half screen
  • ^U move backward one half screen
  • ^R redraw screen 
  • ^L redraw screen

Inserting

  • r replace character under cursor with next character typed
  • R keep replacing character until [esc] is hit
  • i insert before cursor
  • a append after cursor
  • A append at end of line
  • O open line above cursor and enter append mode

deleting

  • x delete character under cursor
  • dd delete line under cursor
  • dw delete word under cursor
  • db delete word before cursor

copying code

  • yy (yank)'copies' line which may then be put by the p(put) command. Precede with a count for multiple lines.

put (brings back previous deletion or yank of lines, words, or characters)

  • P bring back before cursor
  • p bring back after cursor

find commands

  • ? finds a word going backwards
  • / finds a word going forwards
  • f finds a character on the line under the cursor going forward
  • F finds a character on the line under the cursor going backwards
  • t find a character on the current line going forward and stop one character before it
  • T find a character on the current line going backward and stop one character before it
  • ; repeat last f, F, t, T

miscellaneous commands

  • . repeat last command
  • u undoes last command issued
  • U undoes all commands on one line
  • xp deletes first character and inserts after second (swap)
  • J join current line with the next line
  • ^G display current line number
  • % if at one parenthesis, will jump to its mate
  • mx mark current line with character x
  • 'x find line marked with character x

line editor mode

  • any commands form the line editor ex can be issued upon entering line mode.
  • to enter: type ':'
  • to exit: press[return] or [esc]

moving

  • :# move to line #
  • :$ move to last line of file

shell

  • :!'cmd' executes 'cmd' as a shell command.