La potencia del editor vi

editor-vi

editor-vi

 

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

La potencia del editor vi

Be the first to comment

Leave a Reply

Your email address will not be published.


*