| 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 |
| view nombre_de_archivo | 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 |
| ~ | Cambiar el tipo de letra (mayúscula o minúscula) |
| 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! | Salir sin guardar los cambios |