Abrimos el primero cuando llamamos al VI.
Colocamos el cursor donde corresponda (el comando añade el segundo fichero justo debajo del cursor).
:r fichero
Unir dos líneas de texto contiguas:
Nos colocamos en la primera línea.
J
Ir al final de la línea:
$
Borrar hasta el final de línea:
D
Moverse al principio de la palabra anterior:
b
Ir a la línea 25:
25G
Ir a la última línea:
G
Copiar una línea y pegarla justo debajo (duplicar la línea):
Y (copia la línea actual).
p (pega lo copiado debajo de la línea actual).
Cambiar la palabra actual:
wc (word change)
Repetir el comando:
.
Avanzar de palabra en palabra:
w
Mostrar los números de línea:
:set nu
Deshabilitar los números de línea:
:set nu!
Borrar las siguientes 1000 líneas
d1000
Eliminar las líneas que cumplan un patrón determinado:
:g/patrón/d
Eliminar las líneas que NO cumplan un patrón:
:g!/patrón/d
Deshacer el último cambio en la línea:
U
Deshacer el último cambio:
u
Deshacer los 3 últimos cambios:
3u
Cambiar a mayúsculas o minúsculas:
Para este tema hay que recordar que la letra "g" es para cambir de un tipo al otro y algunas cosas más:
gu significa cambiar a minúsculas
gU significa cambiar a mayúsulas
w significa palabras (word).
G es para ir al final del fichero.
$ es para ir al final de línea.
Por lo tanto comandos válidos son:
gUw -> Cambiar la palabra a letras mayúsculas.
guw -> Cmabiar la palabra a letras minúsculas.
gU100w -> Cambiar las siguientes 100 palabras a mayúsculas.
gu100w -> Cambiar las siguientes 100 palabras a minúsculas.
gU$ -> Cambiar la línea actual a mayúsculas.
gu$ -> Cambiar la línea actual a minúsculas.
gUG -> Todo en mayúsculas hasta el final.
guG -> Todo en minúsculas hasta el final.
Comando de sustitución en el modo EX:
:s sustituye en la línea actual.
:%s sustituye en todo el fichero.
Cambiar en la línea actual la primera palabra "hola" que encuentre por "HOLA".
:s/hola/HOLA/
Cambiar en la línea actual todas las palabras "hola" por "HOLA".
:s/hola/HOLA/g
Cambiar todos los "hola" del fichero por "HOLA":
:%s/hola/HOLA/g
%s es lo mismo que 1,$, por lo que también podemos hacer:
:1,$s/hola/HOLA/g
Cambiar "hola" por "HOLA" de la línea 100 a la 200:
:100,200s/hola/HOLA/g
Para que pida confirmación en cada cambio añadimos la letra c al final:
:100,200s/hola/HOLA/gc
Para que ignore las mayúsculas/minúsculas
:100,200s/hola/adios/gci
Para que no ignore las mayúsculas/minúsculas:
:100,200s/hola/adios/gcI
Reemplazar la palabra "hola" por "HOLA" en las líneas que cumplan un patrón:
:g/patron/s/hola/HOLA/g
Caracteres especiales o "metacaracteres" para formar el patrón:
^ es el inicio de la expresión regular (inicio de línea).
$ es el final de línea.
. es cualquier carácter menos el salto de línea.
* es cero o más caracteres.
[] es cualquier carácter de los que se encuentra entre corchetes.
\ es el carácter de escape. Así \$ se refiere al carácter $ y no al final de línea.
\s es el espacio en blanco
\d es un dígito
Más metacaracteres aquí.
Un sencillo manual PDF con más comandos de VI aquí.
No hay comentarios:
Publicar un comentario