Fuente: Enlace

vi.jpg“Vi es probablemente el mejor editor de textos de consola, pero puede que a muchos se les atragante su uso. Cuando se trata de editar algún fichero en Linux desde la consola, yo es el que uso habitualmente aunque hay gente que prefiere otros programas incluso usar gEdit.El manejo de vi es un poco peculiar, sin embargo es importante conocerlo porque Vi se puede encontrar en cualquier sistema operativo Linux y forma parte de la instalación predeterminada, por lo que tenemos la seguridad de que en cualquier momento y en cualquier terminal Linux podremos utilizarlo.

Además el control de este editor es totalmente uniforme y libre de equivocaciones.

¿Cómo ejecuto vi?

$ vi nombre_de_fichero

Aunque si lo que quieres es editar algún fichero importante del sistema, deberás utilizar eventualmente el comando sudo delante de esta orden:

$ sudo vi nombre_de_fichero

Es importante saber antes de continuar que en el editor vi hay tres modos de trabajo:

  • modo comandos (command mode)
  • modo editor (insert mode)
  • modo de comandos complejos (last line mode)

Vayamos por partes. Abrid la consola y ejecutad el comando vi para poder editar el fichero pepe.txt

$ vi pepe.txt

Ahora deberíais tener una pantalla parecida a esta:

vi001.jpg

Acto seguido podemos empezar a escribir para poner lo que necesitemos. Esto es porque vi se inicia por defecto en el modo editor.

Una vez hayais editado el fichero, estoy seguro de que querreis saber cómo se guarda, abre, sale o se hace cualquier otra acción que un editor de textos permite.

Hay que decir que para realizar estas acciones, debemos antes pulsar la tecla ESC (Escape) para cambiar el programa al modo comando.

Si todo va bien, notareis que el cursor de inserción de texto está ahora en la parte inferior de la pantalla de vi.

Modo de comandos

Las órdenes más importantes del modo de comandos son:

Nota: Cuidado con las mayúsculas y minúsculas, que ya sabeis que Linux es “case sensitive”.

  • Tecla ESC: Cambia al modo de comandos complejos. Es imprescindible pulsarla antes de ejecutar cualquier comando si estamos en modo editor.
  • i: Cambia al modo de inserción (los caracteres se introducen en la posición actual del cursor).
  • a: Cambia al modo de inserción (los caracteres se introducen detrás de la posición actual del cursor).
  • A: Cambia al modo de inserción (los caracteres se añaden al final de la línea).
  • R: Cambia al modo de inserción (sobrescribe el texto anterior).
  • r: Cambia al modo de inserción sobrescribiendo un solo carácter. s Cambia al modo de inserción (el carácter en la posición del cursor se sobrescribe con el carácter nuevo).
  • C: Cambia al modo de inserción (el resto de la línea se reemplaza por el texto nuevo).
  • O: Cambia al modo de inserción (por delante de la línea actual se añade una línea nueva).
  • x: Borra el carácter actual.
  • dd: Borra la línea actual.
  • dw: Borra hasta el final de la palabra actual.
  • cw: Cambia al modo de inserción (el resto de la palabra actual se sobrescribe).
  • u: Deshace el último comando.
  • J: Añade la siguiente línea a la actual.
  • .: Repite el último comando.
  • : Cambia al modo de comandos complejos.

Hay que decir, que es posible anteponer una cifra a cualquier comando. La cifra será indicadora para el programa del número de veces que tiene que repetir el comando. Por ejemplo:

3dw -> Borrará tres palabras seguidas
10x -> Borrará diez caracteres a partir de la posición actual.
20dd -> Borrará 20 líneas

Modo de comandos complejos

Los comandos más importantes son los siguientes:

  • :q! sale de vi sin grabar los cambios.
  • :w nombre_archivo graba bajo el nombre nombre_archivo.
  • :X graba el archivo modificado y sale del editor.
  • :e Nombrearchivo edita (carga) nombre_archivo.
  • :u deshace el último comando de edición.

Espero que todo esto os sirva para familiarizaros mejor con este editor de textos tan amado por la mayoría de programadores y tan necesario para los usuarios de sistemas Linux/Unix.