A vi egy képernyő orientált szövegszerkesztő, melyet Bill Joy írt 1976-ban egy korai BSD kiadáshoz. Gyakorlatilag valamennyi Unix-szerű operációs rendszerben megtalálható.
A vi név az angol visual szó rövidítéséből származik, kiejtése ví-áj.
A vi használata során különféle üzemmódokban működik. A beviteli üzemmód során lehet az adott dokumentumba beírni a kívánt szöveget. Parancs üzemmódban az egyes billentyűk nem a nekik megfelelő karaktert jelenítik meg, hanem parancsként működnek, pl. az i lenyomásával lehet parancs üzemmódból beviteli üzemmódba váltani, vagy az x segítségével törölhető a kurzor alatti karakter.
Sok parancs esetében a parancs előtt beütött szám megadja, hányszor kell az adott feladatot végrehajtani, így az 5x lenyomásával egyszerre öt karakter törölhető.
A vi magában foglalja az ex sorszerkesztőt is, aminek parancsait a : leütésével, majd magának az utasításnak a begépelésével lehet elérni (a vi parancs üzemmódjából).
Fontosabb parancsai
A vi parancsai parancs üzemmódban adhatók ki. Ha a szerkesztő beviteli módban van, az Esc lenyomásával lehet ismét parancsmódba kapcsolni. A fontosabb parancsok a következők:
Kurzormozgató parancsok
hjkl
A kurzor mozgatása sorrendben: balra, le, fel, jobbra.
wWbB
Előreugrás (w és W) vagy hátraugrás (b és B) szavanként. A w és b minden nem-alfanumerikus jelet szóhatárnak tekint; a W és B csak a white space karaktereket.
}{
Ugrás az aktuális vagy előző paragrafus végére
)(
Ugrás az aktuális vagy előző mondat végére
Ezen mozgási parancsok legtöbbje számlálóval is használható: pl. a 7j parancs hét karakternyit lép jobbra.
G
A megadott sorra ugrik, pl. a "100G" a századik sorra. Ha nem adunk meg számot, az utolsó sorra ugrik.
^
Az adott sor első nem-üres karakterére ugrik
$
Az adott sor végére ugrik
0
Az adott sor elejére ugrik
Váltás beviteli módba
Az alábbi parancsok a megfelelő helyre ugranak, majd beviteli módba váltanak át:
a
Bevitel a kurzor utáni pozícióba
A
Bevitel az aktuális sor végére
i
Beszúrás a kurzor előtti pozícióba
I
Beszúrás az aktuális sor elejére
o
Üres sor beszúrása és bevitel a kurzor alatti sorban
O
Üres sor beszúrása és bevitel a kurzor feletti sorban
nvi: az ex/vi azon változata, amely része volt a 4.4BSD terjesztésnek. Ez a verzió található meg az összes mai nyílt forráskódú BSD-alapú operációs rendszerben.
Vim ("Vi IMproved"): a vi rengeteg funkcióval kibővített változata, amely többek között grafikus felülettel is rendelkezik. Szinte minden modern Linuxdisztribúcióban a vi ezen verziója található meg.
bvi ("Binary VI") a vi-on alapuló alkalmazás bináris állományok szerkesztésére