# vai all linea
vi +36 foo.c
:14
 
# mostra numero di linea
:set number
:set nonumber
 
# in .vimrc
set number

exit

    :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

Moving the Cursor

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

Screen Manipulation

    <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

Adding, Changing, and Deleting Text

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 key must be pressed to terminate the entry of text and to put the vi editor back into command mode.

    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

Changing Text

    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 is hit

Deleting Text

    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

Cutting and Pasting Text

    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/find Text

    # 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

Determining Line Numbers

    :.=	 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,

Saving and Reading Files

    :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

line numbers

vi ~/.vimrc

set number
set t_Co
=256
syntax on
set background
=dark
colorscheme distinguished