vi är en textredigerare med ursprung i Unix. vi (eller dess varianter) finns porterade till de flesta operativsystem. Redigeraren finns förinstallerat i alla Unix-system. Den bygger på kortkommandon och kan därför tyckas svårtillgänglig, men för vana användare är den både snabb och kraftfull, samtidigt som den är mycket resurssnål.
vi baserades på den ännu äldre programvaran ex. Numera finns dels varianter som försöker följa de ursprungliga koncepten, såsom nvi, dels modernare (och enligt många förbättrade) varianter av vi, såsom vim, vile och elvis.
Kommando- och skrivläge
vi använder två lägen, ett kommandoläge och ett skrivläge (det man skriver i skrivläge kan åtminstone i vi och nvi uppfattas som en parameter till kommandot genom vilket man kom till skrivläget). När man är i kommandoläget använder man de tecken/kommandon som listas nedan i avsnittet Kommandoläge. Man kan alltid trycka på Esc för att återgå till kommandoläget. I kommandoläget kan man även ge kommandot : (kolon). Man får då upp en kommandoprompt längst ner på skärmen. Detta läge kallas även för exläge, som kommer från den äldre textredigeraren ex. I exläge används följande kommandon för att öppna, spara och avsluta vi.
Kommandon i exläge
:w
Spara aktuell fil
:wq
Spara aktuell fil och avsluta vi
:w minfil.txt
Spara texten till minfil.txt
:q!
Avsluta utan att spara
:e minfil.txt
Öppna filen minfil.txt i vi
Esc
Avsluta exläge och återgå till kommandoläge
Kommandon i kommandoläge
h j k l
Flyttar markören åt vänster, nedåt, uppåt och åt höger.
Retur+ -
Flytta pekaren nedåt (Retur och '+') eller uppåt ('-').
w W b B
Flytta markören ett ord framåt (w eller W) eller bakåt (b eller B). w och b ser alla icke-alfanumeriska tecken som ordavgränsare. W och B ser bara blanksteg, tabulatortecken och nya rader som ordavgränsare.
} {
Flytta markören till slutet av nuvarande respektive föregående stycke.
) (
Flytta markören till slutet av nuvarande respektive föregående mening.
G
Flyttar markören till en specificerad rad. 10G går till den tionde raden. Utan argument flyttas markören till slutet av dokumentet.
d D
Tar bort en region. dd tar bort den aktiva raden. D tar bort allting från markören till slutet av raden. 10dd tar bort tio rader.
/ %
Söker efter ett specificerat mönster framåt respektive bakåt i texten.
i
Skriv in text före markörens position (eng. insert)
a
Skriv in text efter markörens position (eng. append)