#4sysadmins

Inicio » GNU/Linux » Uso del editor VI

Uso del editor VI

Últimas Entradas

Follow #4sysadmins on WordPress.com

Edición básica con Vi

Primer editor de texto a pantalla completa creado para UNIX, diseñado para ser pequeño y sencillo. Podemos abrir el editor Vi de diferentes formas:

1 . Abrir un archivo para editar con Vi en modo “full screen“:

$ vi /etc/fstab

2 . Recuperar la última versión guardada de un fichero. Esto es útil si no hemos cerrado correctamente Vi y se ha quedado guardado el archivo swap del fichero:

$ vi -r /home/nebul4ck/listas.txt

3 . Abrir un archivo con Vi situándonos en la última línea:

$ vi + /etc/samba/smb.conf

4 . Abrir un archivo para editar con Vi posicionando el cursor en una línea concreta (en este caso en la 24):

$ vi +24 /etc/apt/source.list

5 . Editar múltiples archivos. Iremos abriendo y guardado un archivo cada vez. Podemos pasar de un archivo a otro desde el modo comando de Vi con :n (guardamos cambios) o :n! si no queremos guardar:

$ vi archivo1 archivo2 ...archivoN

6 . Abrir un archivo con Vi situando el cursor en la primera ocurrencia de patrón:

$ vi +/patrón /etc/fstab

Modos de Vi

Vi podrá ser ejecutado en los siguientes modos:

  • Modo comando: Acepta letras independientes que son aceptadas como comandos, como por ejemplo ‘i‘ o ‘a‘ que pasan a modo inserción (de manera distinta) o el caracter ‘o‘ que crea una nueva línea bajo la actual
  • Modo ex: Utilizado para manipular archivos; guardar archivo y ejecutar programas externos (por ejemplo), bastará escribir ‘:‘ para pasar a este modo
  • Modo inserción: Es el modo en el que vi nos permite introducir texto en el archivo. Para regresar al modo comando pulsamos ‘Esc

Cuando accedemos a Vi por defecto nos encontramos en el modo comando. Podremos pasar al modo inserción con las siguientes teclas:

  • Insertar después del carácter donde se encuentra actualmente el cursor: a
  • Insertar antes del carácter donde se encuentra actualmente el cursor: i
  • Añadir al final de la línea en la que se encuentra el cursor: A
  • Añadir al principio de la línea en la que se encuentra el cursor: I
  • Entrar en modo reemplazo de caracter: R
  • Añadir una línea en blanco debajo de la línea en la que se encuentra el cursor y pasa a modo inserción: o
  • Añade una línea en blanco encima de la línea en la que se encuentra el cursor y pasa al modo inserción: O

En el modo insercción solo podremos insertar texto y movernos con las teclas RePág y AvPág.

Opciones que acepta Vi

En el modo comando además de las teclas anteriormente vistas (con las que pasamos a modo inserción) podremos realizar otras acciones:

Opciones de movimientos

  • j ó RETURN: Siguiente línea
  • k : Línea anterior
  • h : Carácter anterior
  • l : Siguiente carácter
  • [[ ó H : Ir al inicio del archivo
  • ]] , L ó G : Ir al final del fichero
  • nG : Ir a la línea ‘n’
  • := : Muestra la línea actual
  • Ctrl+F : Ir a la siguiente pantalla
  • Ctrl+B : Ir a la pantalla anterior
  • Ctrl+D : Avanzar media pantalla
  • Ctrl+U : Retroceder media pantalla

Operar con el archivo

  • :e : Edita un archivo indicado si no hay cambios en el archivo actual
  • :e! : Edita el archivo indicado, perdiendo las cambios en el archivo actual (en caso de que los hubiese)
  • :r : Copia/añade el contenido de un archivo en el actual (después de la línea en la que se encuentra el cursor)
  • :nr : Igual que el anterior pero lo añade a partir de la línea indicada con ‘n’
  • :sh : Ejecuta un shell sin salir de Vi. Para finalizar el shell deberemos de escribir “exit”
  • :!comando : Ejecuta el un comando externo pasado por ‘comando‘. Por ejemplo :!ls muestra los archivos del directorio actual.
  • :n,mw! : Guarda solo las líneas indicadas por el rango ‘n,m
  • :n,m>>archivo : Añade en ‘archivo‘ las líneas comprendidas por el rango ‘n,m
  • :q : Sale de un archivo si los datos han sido guardados o no han habido cambios
  • :q! : Sale del archivo sin escribir cambios
  • :w : Guardar cambios
  • :w : Guarda el fichero con un nombre específico
  • :wq , :x ó ZZ : Guarda los cambios y sale del editor

Copiar, pegar y borrar texto dentro de Vi

Antes de mostrar los comandos debemos de concocer una característica importante. Con gran parte de los siguientes comandos podremos utilizar un dígito precediendo al comando con lo que conseguiremos una repetición del comando, por ejemplo, el comando dd elimina una línea, pues 2dd borraría dos.

  • yy : Copia la línea en la que se encuentra el cursor. Admite dígitos de repétición. Se copiaría la línea del cursor y las ‘n’ siguientes. 3yy Copia la línea del cursor y las dos siguientes
  • p : Pega el contenido del buffer (las líneas copiadas) debajo de la línea del cursor
  • P : Igual que ‘p‘ pero en la línea superior a la que se encuentra el cursor
  • x : Borra el carácter donde se encuentra el cursor. Admite n dígitos por lo que se borrarán ‘n‘ carácteres incluido el del cursor.
  • dd : Elimina (corta) la línea en la que se encuentra el cursor. Igualmente podemos aplicar ‘n‘ líneas
  • dw : Borra la palabra en la que se encuentra el cursor. Admite n dígitos, por lo que se borrarán ‘n‘ palabras incluyendo a la del cursor.
  • D : Borra desde la posición del cursor hasta el final de la línea. Admite n dígitos, por lo que borraremos desde el cursor hasta el final de la línea y tantas líneas como hayamos especificado.
  • ~ : Cambia el carácter de minúscula a mayúscula (virgulilla)
  • u : Deshacer último cambio

Buscar texto y reemplazar

  • /patrón : Busca la cadena ‘patrón‘ desde la posición del cursor. Podemos continuar con la búsqueda (en caso de que exista mas de una coincidencia) con la letra n o N si queremos ir a la coincidencia anterior.
  • ?patrón : Igual que el comando anterior pero invertido, es decir, busca desde la posición del cursor hacia arriba (hacia el principio del archivo)
  • :set ic : Ejecutar esto antes de comenzar una búsqueda (con /patrón, por ejemplo) hará que no se tengan en cuenta mas mayúsculas y las minúsculas.
  • :set noic : Es igual que el anterior pero si se tendrán en cuenta las mayúsculas y minúsculas.
  • :%s/original/sustituto/ : Cambia todas las entradas que coincidan con original por sustituto. Si cambiamos % por un numero de línea, solo se modificarán las palabras de esa linea. Si escribimos numero,numero se modificaran todas las palabras de esas lineas que coincidan con original.
  • :g/original/s//sustituto: Igualmente cambiará todas las coincidencias de ‘original‘ por ‘sustituto‘. Sin la ‘g‘ solo modificaremos la primera ocurrencia.
Anuncios

Deja un comentario, Gracias!

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: