La modifica di un testo comporta la sostituzione di caratteri esistenti con caratteri nuovi. vi dispone di molti comandi per eseguire questa operazione, a seconda delle esigenze e della portata delle modifiche.
Per sostituire una parola, posizionare il cursore all'inizio della parola da sostituire. Digitare cw seguito dalla nuova parola. Per terminare, premere Esc.
Per modificare una parte di una parola, posizionare il cursore sulla parola, a destra della parte da conservare. Digitare cw, inserire la correzione e premere Esc.
Per modificare una riga, posizionare il cursore in qualsiasi punto della riga e digitare cc. La riga scomparirà lasciando una riga vuota per il nuovo testo (che potrà avere qualsiasi lunghezza). Per terminare, premere Esc.
Per sostituire una parte di una riga, posizionare il cursore a destra della parte che si desidera conservare. Digitare C, inserire il nuovo testo e premere Esc. In questo modo viene modificata la parte di testo compresa tra la posizione corrente del cursore e la fine della riga.
Per sostituire il carattere in corrispondenza del cursore con uno o più caratteri, digitare una s seguita dal nuovo testo. Per tornare alla modalità comando, premere Esc.
Questo comando permette di sostituire il carattere evidenziato dal cursore con un altro carattere. Posizionare il cursore sul carattere e digitare una r seguita da un solo carattere sostitutivo. Dopo la sostituzione, vi torna automaticamente alla modalità comando (senza bisogno di premere Esc).
vi dispone di un comando molto semplice per correggere i caratteri trasposti, ad esempio un "ter" digitato al posto di "tre". Per eseguire la correzione, posizionare il cursore sulla prima lettera da spostare (in questo caso la e), quindi digitare xp. La e e la r cambieranno di posto e vi tornerà automaticamente alla modalità comando.
Per spezzare una riga senza modificarne il testo, portare il cursore su un carattere di spazio e digitare una r seguita da Return. Si noti che eseguendo questa operazione con il cursore posizionato su una lettera, la lettera evidenziata sarà sostituita dal carattere di ritorno a capo.
Per unire due righe, posizionare il cursore sulla riga superiore e digitare una J maiuscola. (Non è necessario premere Esc per terminare.)