# vai all linea vi +36 foo.c :14 # mostra numero di linea :set number :set nonumber # in .vimrc set number
:x<Return> quit vi, writing out modified file to file named in original invocation :wq<Return> quit vi, writing out modified file to file named in original invocation :q<Return> quit (or exit) vi :q!<Return> quit vi even though latest changes have not been saved for this vi call
You must use the the key commands listed below.
j or <Return> [or down-arrow] move cursor down one line k [or up-arrow] move cursor up one line h or <Backspace> [or left-arrow] move cursor left one character l or <Space> [or right-arrow] move cursor right one character 0 (zero) move cursor to start of current line (the one with the cursor) $ move cursor to end of current line w move cursor to beginning of next word b move cursor back to beginning of preceding word :0<Return> or 1G move cursor to first line in file :n<Return> or nG move cursor to line n :$<Return> or G move cursor to last line in file
<Ctrl hold>f move forward one screen <Ctrl hold>b move backward one screen <Ctrl hold>d move down (forward) one half screen <Ctrl hold>u move up (back) one half screen <Ctrl hold>l redraws the screen <Ctrl hold>r redraws the screen, removing deleted lines
you cannot replace or delete text by highlighting it with the mouse. Instead use the commands in the following tables.
undo your last action. Unfortunately, this command acts like a toggle, undoing and redoing your most recent action. You cannot go back more than one step.
u UNDO WHATEVER YOU JUST DID; a simple toggle
The following commands allow you to insert and add text.
Each of these commands puts the vi editor into insert mode;
thus, the
i insert text before cursor, until <Esc> hit I insert text at beginning of current line, until <Esc> hit a append text after cursor, until <Esc> hit A append text to end of current line, until <Esc> hit o open and put text in a new line below current line, until <Esc> hit O open and put text in a new line above current line, until <Esc> hit
r replace single character under cursor (no <Esc> needed) R replace characters, starting with current cursor position, until <Esc> hit cw change the current word with new text, starting with the character under cursor, until <Esc> hit cNw change N words beginning with character under cursor, until <Esc> hit; e.g., c5w changes 5 words C change (replace) the characters in the current line, until <Esc> hit cc change (replace) the entire current line, stopping when <Esc> is hit Ncc or cNc change (replace) the next N lines, starting with the current line,
stopping when
x delete single character under cursor Nx delete N characters, starting with character under cursor dw delete the single word beginning with character under cursor dNw delete N words beginning with character under cursor; e.g., d5w deletes 5 words D delete the remainder of the line, starting with current cursor position dd delete entire current line Ndd or dNd delete N lines, beginning with the current line; e.g., 5dd deletes 5 lines
yy copy (yank, cut) the current line into the buffer Nyy or yNy copy (yank, cut) the next N lines, including the current line, into the buffer p put (paste) the line(s) in the buffer into the text after the current line
Other Commands
# searching: :s/string /string # search forward for occurrence of string in text ?string # search backward for occurrence of string in text n # move to next occurrence of search string N # move to next occurrence of search string in opposite direction
:.= returns line number of current line at bottom of screen := returns the total number of lines at bottom of screen <Ctrl hold>g provides the current line number, along with the total number of lines,
:r filename<Return> read file named filename and insert after current line (the line with cursor) :w<Return> write current contents to file named in original vi call :w newfile<Return> write current contents to a new file named newfile :12,35w smallfile<Return> write the contents of the lines numbered 12 through 35 to a new file named smallfile :w! prevfile<Return> write current contents over a pre-existing file named prevfile
vi ~/.vimrc
set number
set t_Co=256
syntax on
set background=dark
colorscheme distinguished