Vi es un editor de texto clásico de Unix, operando en modalidad orientado a pantalla, y acompañando a ex, su interfaz orientada a líneas.
El Vi original fue desarrollado en 1976 por Bill Joy en la Universidad de Berkeley, con el objetivo de incluirlo en su Distribución de Software de Berkeley y buscando reemplazar el uso de ed.
Comparado con la mayoría de sus clones modernos, esta versión de vi sigue siendo bastante pequeña, conservando la potente interfaz de edición, aunque careciendo de funcionalidades como deshacer, pantallas múltiples, o resaltado de sintaxis de código fuente (comunes de encontrar en derivados modernos, como el extendido vim). Si deseas utilizar un exponente fiel al código fuente del vi original del BSD de finales de los setentas, podrás hacerlo optando por nvi.
Esta versión carece de control de terminal y ciertas características modernas como el ingreso de conjuntos de caracteres internacionales (incluyendo UTF-8) están implementadas. A pesar de ello, no los presenta adecuadamente en su propia pantalla.
Para comenzar a editar un fichero, ingresa el comando
vi fichero.txt
Vi es un editor modal, por lo que te encontrarás en los modos comandos. Para comenzar a insertar texto presiona la tecla i para pasar al modo de inserción, mecanografía el texto que desees, y cesa el modo de inserción con la tecla Esc.
Como dijimos, para activar el modo comando presiona la tecla Esc, y se presentará el prompt de modo comando :. Los demás comandos útiles son:
| Flechas del cursor | Movimiento del cursor |
h | Un caracter a la izquierda |
j | Un caracter abajo |
k | Un caracter arriba |
l | Un caracter a la derecha |
/texto | Busca la cadena texto |
a | Agrega nuevo texto a continuación del cursor |
i | Inserta nuevo texto antes del cursor |
o | Crea una línea nueva debajo del cursor, y comienza a ingresar texto. |
O | Crea una nueva línea encima del cursor, y comienza a ingresar texto. |
yy | Copia al portapapeles la línea del cursor. |
p | Pega la línea copiada a continuación de la línea del cursor |
dd | Borra la línea del cursor. |
x | Borra el caracter donde está el cursor. |
:w | Guarda el fichero |
:w nombre.txt | Guarda el fichero como nombre.txt |
:q | Abandona la edición y Sale de vi (si no guardó los cambios, vi no terminará) |
:q! | Sale de Vi descartando cualquier modificación realizada. |
En vi, Los caracteres inusuales pueden ocupar más de una columna en la pantalla, y las líneas largas pueden abarcar más de una línea de pantalla. Los comandos anteriores actúan sobre los caracteres y líneas «físicos»; es decir, afectan a la línea completa, independientemente de cuántas líneas de pantalla ocupe, y al carácter completo, sin importar cuántas columnas de pantalla requiera.
Revisa el man de vi para ver sus comandos avanzados.