En la tabla siguiente puede consultar de forma cómoda los comandos básicos de vi:
Tabla 6-1 Comandos básicos de vi| Comando | Significado | 
|---|---|
| Empezar vi | 
 | 
| vi nombre_de_archivo | Abrir o crear el archivo | 
| vi | Abrir un archivo nuevo para nombrarlo más tarde | 
| vi -r nombre_de_archivo | Recuperar un archivo de una caída del sistema | 
| Abrir archivo sólo para leer | |
| Comandos del cursor | 
 | 
| h | Moverse un carácter hacia la izquierda | 
| j | Moverse una línea hacia abajo | 
| k | Moverse una línea hacia arriba | 
| l | Moverse un carácter a la derecha | 
| w | Moverse una palabra a la derecha | 
| W | Moverse una palabra a la derecha (pasados los signos de puntuación) | 
| b | Moverse una palabra a la izquierda | 
| B | Moverse una palabra a la izquierda (pasados los signos de puntuación) | 
| e | Moverse al final de la palabra actual | 
| Return | Moverse una línea hacia abajo | 
| Back Space | Moverse un carácter a la izquierda | 
| Space Bar | Moverse un carácter a la derecha | 
| H | Moverse a la parte de arriba de la pantalla | 
| M | Moverse al centro de la pantalla | 
| L | Moverse a la parte inferior de la pantalla | 
| Ctrl-F | Paginar una pantalla hacia adelante | 
| Ctrl-D | Desplazarse media pantalla hacia adelante | 
| Ctrl-B | Paginar una pantalla hacia atrás | 
| Ctrl-U | Desplazarse media pantalla hacia atrás | 
| Insertar caracteres y líneas | 
 | 
| a | Insertar caracteres a la derecha del cursor | 
| A | Insertar caracteres al final de la línea | 
| i | Insertar caracteres a la izquierda del cursor | 
| I | Insertar caracteres al principio de línea | 
| o | Insertar una línea por debajo el cursor | 
| O | Insertar una línea por encima del cursor | 
| Cambiar texto | 
 | 
| cw | Cambiar una palabra (o parte de una palabra) a la derecha del cursor | 
| c | Cambiar una línea | 
| C | Cambiar desde el cursor hasta el final de la línea | 
| s | Sustituir cadena por carácter(es) desde el cursor hacia adelante | 
| r | Reemplazar el carácter marcado por cursor por otro carácter | 
| r Return | Partir una línea | 
| J | Unir la línea actual con la línea inferior | 
| xp | Transponer el carácter del cursor con el carácter a la derecha | 
| ~ | |
| u | Deshacer el comando anterior | 
| U | Deshacer todos los cambios en la línea actual | 
| :u | Deshacer el comando anterior sobre la línea última | 
| Eliminar texto | 
 | 
| x | Eliminar el carácter del cursor | 
| X | Eliminar el carácter a la izquierda del cursor | 
| dw | Eliminar la palabra (o la parte de la palabra a la derecha del cursor) | 
| dd | Eliminar la línea que contiene al cursor | 
| D | Eliminar la parte de la línea a la derecha del cursor | 
| dG | Eliminar hasta el final de línea | 
| d1G | Eliminar desde el principio del archivo hasta el cursor | 
| :5,10 d | Eliminar las líneas de la 5 a la 10 | 
| Copiar y mover texto | 
 | 
| yy | Tirar o copiar línea | 
| Y | Tirar o copiar línea | 
| p | Poner la línea tirada o eliminada por debajo de la línea actual | 
| P | Poner la línea tirada o eliminada por encima de la línea actual | 
| :1,2 co 3 | Copiar las líneas de la 1 a la 2 y ponerlas después de la línea 3 | 
| :4,5 m 6 | Mover las líneas de la 4 a la 5 y ponerlas después de la línea 6 | 
| Ajustar la numeración de las líneas | 
 | 
| :set nu | Mostrar los números de las líneas | 
| :set nonu | Esconder los números de las líneas | 
| 
 | Establecer la distinción entre mayúsculas y minúsculas | 
| :set ic | En la búsqueda se ignora la distinción entre mayúsculas y minúsculas | 
| :set noic | En la búsqueda se distingue entre mayúsculas y minúsculas | 
| Encontrar una línea | 
 | 
| G | Ir a la última línea del archivo | 
| 1G | Ir a la primera línea del archivo | 
| 21G | Ir a la línea 21 | 
| Buscar y reemplazar | 
 | 
| /string | Búsqueda de cadena de caracteres | 
| ?string | Búsqueda hacia atrás de cadena de caracteres | 
| n | Encontrar la siguiente aparición de string en la dirección de búsqueda | 
| N | Encontrar la aparición previa de la cadena de caracteres en la dirección de búsqueda | 
| :g/search/s//replace/g | Buscar y reemplazar | 
| Limpiar la pantalla | 
 | 
| Ctrl-L | Limpiar (actualizar) la pantalla | 
| 
 | Insertar un archivo en otro archivo | 
| :r nombre_de_archivo | Insertar (leer) el archivo a continuación del cursor | 
| :34 r nombre_de_archivo | Insertar el archivo después de la línea 34 | 
| Guardar y salir | 
 | 
| :w | Guardar los cambios (escribir el contenido de la memoria intermedia) | 
| :w nombre_de_archivo | Escribir el contenido de la memoria intermedia a un archivo con nombre | 
| :wq | Guardar los cambios y salir de vi | 
| ZZ | Guardar los cambios y salir de vi | 
| :q! |