El editor vi es un potente editor de textos de pantalla completa, que aparece integrado en todas las versiones de Unix. Se puede utilizar con un mínimo de teclas en casi cualquier terminal, por eso se hace complicado su manejo. Merece la pena familiarizarse con su manejo. Explicamos la potencia del editor vi.
Al final de este artículo, podrás ver el video donde utilizamos el editor vi, para hacer un potente filtrado de información de un archivo de texto. El fichero contiene miles de lineas, con usos simples comandos, automatizamos cambios, que yendo linea a linea podrían habernos costado horas en completar.
Video demostración del editor vi
Como hemos comentado al inicio de este artículo, en este video manejando este editor, vamos a editar y filtrar la información de un archivo de texto, editandolo con unos simples comandos de manera rápida.
El archivo contiene miles de lineas, si hubieramos editado manualmente y linea a linea, podríamos haber tardado horas, incluso dias en terminarlo.
Funcionamiento
Los siguientes ejemplos de manejo asumen que el editor se encuentra en modo comando.
flechas mueven el cursor (si el terminal lo permite) h j k l mueven el cursor (igual que las flechas) itextoESC inserta la palabra "texto" y vuelve a comando x borra el caracter sobre el cursor dw borra una palabra dd borra una línea 3dd borra las 3 líneas siguientes u deshace último cambio ZZ graba cambios y sale de vi :q!ENTER sale de vi sin grabar cambios /expresiónENTER busca la expresión indicada 3Y copia 3 líneas para luego pegar :6r arch3 inserta debajo de la líne 6 el archivo arch3
Movimiento del cursor:
flechas mover en distintas direcciones
h o BS una posición hacia la izquierda l o SP una posición hacia la derecha k o - una línea hacia arriba j o + una línea hacia abajo $ fin de línea 0 principio de línea 1G comienzo del archivo G fin del archivo 18G línea número 18 Ctrl-G mostrar número de línea actual w comienzo de la palabra siguiente e fin de la palabra siguiente E fin de la palabra siguiente antes de espacio b principio de la palabra anterior ^ primera palabra de la línea % hasta el paréntesis que aparea H parte superior de la pantalla L parte inferior de la pantalla M al medio de la pantalla 23| cursor a la columna 23
Control de pantalla.
Ctrl-f una pantalla adelante Ctrl-b una pantalla atrás Ctrl-l redibujar la pantalla Ctrl-d media pantalla adelante Ctrl-u media pantalla atrás
Insertar en modo texto
i insertar antes del cursor I insertar al principio de la línea a insertar después del cursor A insertar al final de la línea o abrir línea debajo de la actual O abrir línea encima de la actual R sobreescribir (cambiar) texto
Borrar
x borrar caracter bajo el cursor dd borrar línea, queda guardada D borrar desde cursor a fin de línea dw borrar desde cursor a fin de palabra d$ borrar desde cursor a fin de línea d0 borrar desde cursor a principio de línea
Copiar y pegar
Y o yy copiar línea P pegar antes del cursor p pegar después del cursor yw copiar palabra y$ copiar de cursor a fin de línea "ayy o "aY copiar línea en buffer llamado 'a' 'a' "ayw copiar palabra en buffer llamado "ap pegar desde buffer 'a', a la derecha del cursor "aP pegar desde buffer 'a', a la izquierda del cursor "bdd borrar línea y guardar en buffer 'b' "bdw borrar palabra y guardar en buffer 'b'
Búsqueda
/str buscar hacia adelante cadena de caracteres 'str' ?str buscar hacia atrás cadena de caracteres 'str' n repetir último comando / o ? N repetir último comando / o ? para el otro lado fc buscar el siguiente caracter 'c' en la línea Fc buscar el anterior caracter 'c' en la línea tc ir al caracter anterior al siguiente 'c' Tc ir al caracter posterior al precedente 'c' ; repetir el último comando f, F, t, o T , último comando f, F, t, o T para el otro lado
Modo ex o última línea.
:q salir si no hubo cambios :q! salir sin guardar cambios :w guardar cambios :w arch1 guardar cambios en archivo arch1 :wq guardar cambios y salir :r arch2 insertar un archivo :e arch2 editar un nuevo archivo :e! arch2 idem sin salvar anterior :r! comando insertar salida de comando :shell salir al shell (vuelve con exit) J unir dos líneas en una ZZ grabar cambios si los hubo y salir u deshacer última acción U deshacer todos los cambios en una línea
Mover
:1 mueve a línea 1 :15 mueve a línea 15 :$ mueve a última línea
Opciones
:set cambio de opciones :set nu mostrar números de línea :set nonu no mostrar números de línea :set showmode mostrar modo actual de vi :set noshowmode no mostrar modo actual de vi
Reemplazo
La sintaxis del comando de búsqueda y reemplazo es la siguiente:
:<desde>,<hasta>s/<buscar>/<reemplazar>/g
<desde>, <hasta> indican líneas en el archivo; <buscar> y <reemplazar> son cadenas de caracteres o expresiones regulares; / es un separador, s (sustituir) y g (global) son letras de comando para el manejo de expresiones regulares.
:1,$s/Ciudad/ciudad/g
cambia Ciudad por ciudad en todo el archivo.
:.,5s/ayuda/&ndo/g
cambia ayuda por ayudando desde línea actual hasta la 5a. línea.
Si te ha gustado, puedes suscribirte al canal de youtube, haciendo click en esta misma página web.
www.caminosdigitales.es
Be the first to comment