Si algunos de nuestros foros, manuales, ALDOS, paquetería o proyectos te han resultado de ayuda, apreciaremos mucho nos apoyes con un donativo.

Funciones básicas de Vi.

Autor: Joel Barrios Dueñas
Correo electrónico: darkshram en gmail punto com
lugar de Red: http://www.alcancelibre.org/
Jabber ID: darkshram@jabber.org

Creative Commons Reconocimiento-NoComercial-CompartirIgual 2.1

© 1999-2016 Joel Barrios Dueñas. Usted es libre de copiar, distribuir y comunicar públicamente la obra y hacer obras derivadas bajo las condiciones siguientes: a) Debe reconocer y citar al autor original. b) No puede utilizar esta obra para fines comerciales (incluyendo su publicación, a través de cualquier medio, por entidades con fines de lucro). c) Si altera o transforma esta obra o genera una obra derivada, sólo puede distribuir la obra generada bajo una licencia idéntica a ésta. Al reutilizar o distribuir la obra, tiene que dejar bien claro los términos de la licencia de esta obra. Alguna de estas condiciones puede no aplicarse si se obtiene el permiso del titular de los derechos de autor. Los derechos derivados de usos legítimos u otras limitaciones no se ven afectados por lo anterior. Licencia completa en castellano. La información contenida en este documento y los derivados de éste se proporcionan tal cual son y los autores no asumirán responsabilidad alguna si el usuario o lector, hace mal uso de éstos.

Introducción.

Vi es uno de los editores de texto más poderosos y añejos que hay en el mundo de la informática y el software libre. Conocer la funcionalidad básica de Vi con la finalidad de facilita la edición de archivos de texto simple, principalmente archivos de configuración.

Procedimientos.

Equipamiento lógico necesario.

Por lo general, vi se instala de modo predefinido en la mayoría de las distribuciones de GNU/Linux a través del paquete vim-minimal (CentOS, Fedora™ y Red Hat™ Enterprise Linux) o vim-base (openSUSE™ y SUSE™ Linux Enterprise). Puede conseguirse funcionalidad adicional a través de los siguientes paquetes:

  • vim-enhanced Versión mejorada de vi que añade color a la sintaxis y otras mejoras en la interfaz. Instala /usr/bin/vim en CentOS, Fedora™, Red Hat™ Enterprise Linux y openSUSE™. Este paquete está ausente en SUSE™ Linux Enterprise.
  • vim-minimalo vim-base: Versión muy básica y ligera de vi. Instala /bin/vi.
  • vim-X11 o gvim: Versión de vi para modo gráfico, más fácil de utilizar gracias a los menús y barra de herramientas. Instala /usr/bin/gvim y los enlaces simbólicos /usr/bin/evim y /usr/bin/vimx que apuntan hacia éste.

En CentOS, Fedora™ y Red Hat™ Enterprise Linux.

Si realizó una instalación mínima, instale vim ejecutando lo siguiente:

yum -y install vim vim-enhanced vim-minimal

En openSUSE™ y SUSE™ Linux Enterprise.

Si realizó una instalación mínima, instale vim ejecutando lo siguiente:

yast -i vim vim-base

Procedimientos previos.

Genere un usuario sin privilegios:

useradd -m curso

Asigne una contraseña a este nuevo usuario:

passwd curso

Cambie a este nuevo usuario ejecutando lo siguiente:

su -l curso

Conociendo vi.

Genere un nuevo documento ejecutando vim y utilizando como argumento holamundo.txt:

vim holamundo.txt

Lo anterior mostrará una interfaz como la siguiente:

~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
"holamundo.txt" [Archivo nuevo]                 0,0-1       Todo

Pulse una vez el botón <INSERT> —o bien la tecla i— y observe los cambios en la pantalla

~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
-- INSERTAR --                                   0-1        Todo

En la parte inferior de la pantalla aparecerá la palabra «INSERTAR». Esto significa que, al igual que cualquier otro editor de texto conocido, puede comenzar a insertar texto en el archivo. Escriba la frase «Alcance Libre», pulse la tecla (ENTER) y escriba de forma pro-positiva la frase «un vuen lugar donde comensar»:

Alcance Libre
un vuen lugar donde comensar
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
-- INSERTAR --                                   0-1        Todo

Posicione el cursor del teclado justo debajo de la «v» de la palabra «vuen» y pulse de nuevo la tecla <INSERT> del teclado —o bien pulse la tecla <Esc> y SHIFT+R. Notará que ahora aparece la palabra «REEMPLAZAR»:

Alcance Libre
un vuen lugar donde comensar
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
-- REEMPLAZAR --                                 0-1        Todo

Pulse la tecla «b» y observe como se reemplaza la letra «v» para quedar la palabra corregida como «buen»:

Alcance Libre
un buen lugar donde comensar
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
-- REEMPLAZAR --                                 0-1        Todo

Mueva el cursor con las flechas del teclado y repita el procedimiento reemplazando la letra «s» por una «z» en la palabra «comensar» de modo que quede como «comenzar»:

Alcance Libre
un buen lugar donde empezar
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
-- REEMPLAZAR --                                 0-1        Todo

Pulse la tecla <Esc> para salir del modo de reemplazo e inmediatamente pulse la tecla : (dos puntos) seguido de la letra «w» con la finalidad de proceder a guardar el archivo en el sistema de archivos:

Alcance Libre
un buen lugar donde comenzar
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
:w                                                              

Pulse la tecla (ENTER) y notará que aparece un mensaje en la parte inferior de la pantalla que indicará que el archivo ha sido guardado:

Alcance Libre
un buen lugar donde comenzar
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
"holamundo.txt" [Nuevo] 2L, 44C escritos        2,3         Todo

Vuelva a pulsar la tecla : (dos puntos) e luego escriba «saveas adiosmundo.txt»:

Alcance Libre
un buen lugar donde comenzar
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
:saveas adiosmunto.txt                                          

Pulse nuevamente la tecla (ENTER) y observe el mensaje en la parte inferior de la pantalla que indica el archivo acaba de ser guardado como el archivo adiosmundo.txt:

Alcance Libre
un buen lugar donde comenzar
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
"adiosmundo.txt" [Nuevo] 2L, 44C escritos       2,3         Todo

Vuelva a pulsar la tecla «INSERT» para regresar al modo de inserción y escriba lo siguiente:

Alcance Libre
un buen lugar donde comenzar
Creo que el mundo es un lugar muy malo
La gente que conozco es mala
Mi vida ha sido muy mala
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
-- INSERTAR --                                5,24          Todo

A continuación pulse la tecla <Esc> e inmediatamente pulse la tecla : (dos puntos) seguido de la combinación de teclas %s/mal/buen/g del siguiente modo:

Alcance Libre
un buen lugar donde comenzar
Creo que el mundo es un lugar muy malo
La gente que conozco es mala
Mi vida ha sido muy mala
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
:%s/mal/buen/g                                                  

Pulse de nuevo la tecla (ENTER) y observe como ha sido reemplazada la cadena de caracteres «mal» por la cadena de caracteres «buen» en todo el archivo, quedando del siguiente modo:

Alcance Libre
un buen lugar donde comenzar
Creo que el mundo es un lugar muy bueno
La gente que conozco es buena
Mi vida ha sido muy buena
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
3 sustituciones en 3 líneas                     5,1          Todo

En el procedimiento anterior, el símbolo «%» indicaba que se aplicaría un procedimiento a todo el archivo, además de la línea misma, la letra «s» indicaba que se realizaría la búsqueda de la cadena de caracteres «mal» definida después de la diagonal (/) por la cadena de caracteres «buen» en toda la línea, indicado por la letra «g».

A continuación posicione el cursor de teclado utilizando las flechas del teclado hasta el primer carácter de la primera línea:

Acance Libre
un buen lugar donde comenzar
Creo que el mundo es un lugar muy bueno
La gente que conozco es buena
Mi vida ha sido muy buena
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
3 sustituciones en 3 líneas                     5,1          Todo

Para copiar pulse dos veces consecutivas la tecla «y», es decir pulsará «yy».:

Para pegar pulse una vez la tecla «d». Observe cómo aparece una línea idéntica debajo de la que acaba de copiar.

Alcance Libre
Acance Libre
un buen lugar donde comenzar
Creo que el mundo es un lugar muy bueno
La gente que conozco es buena
Mi vida ha sido muy buena
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
                                               2,1          Todo

Pulse dos veces la tecla «d», es decir pulsara «yy». Observe como desaparece la línea:

Alcance Libre
un buen lugar donde comenzar
Creo que el mundo es un lugar muy bueno
La gente que conozco es buena
Mi vida ha sido muy buena
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
                                               2,1          Todo

Para cortar texto pulse dos veces consecutivas la tecla «d», es decir pulsará «dd». Observe como desaparece la primera línea:

un buen lugar donde comenzar
Creo que el mundo es un lugar muy bueno
La gente que conozco es buena
Mi vida ha sido muy buena
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
                                                                

Pulse ahora la tecla «p» para volver a pegar la línea:

un buen lugar donde comenzar
Alcance Libre
Creo que el mundo es un lugar muy bueno
La gente que conozco es buena
Mi vida ha sido muy buena
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
                                                                

Observe que la línea «Alcance Libre» reapareció debajo de la línea «un buen lugar donde comenzar». Utilizando las flechas del teclado, coloque el cursor del teclado nuevamente sobre el primer carácter de la primera línea del archivo, es decir, sobre la letra «u» de la línea «un buen lugar donde comenzar»:

un buen lugar donde comenzar
Alcance Libre
Creo que el mundo es un lugar muy bueno
La gente que conozco es buena
Mi vida ha sido muy buena
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
                                                1,1         Todo

Vuelva a pulsar «dd» para cortar la línea «un buen lugar donde comenzar» e luego pulse la tecla «p» para pegar la línea en el lugar correcto:

Alcance Libre
un buen lugar donde comenzar
Creo que el mundo es un lugar muy bueno
La gente que conozco es buena
Mi vida ha sido muy buena
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
                                                2,1         Todo

Coloque ahora el cursor sobre la letra «C» de la línea «Creo que el mundo es un lugar muy bueno» y pulse la tecla «3» seguido de «dd» y observe como son cortadas las tres siguientes lineas:

Alcance Libre
un buen lugar donde comenzar
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
3 líneas menos                                  2,1         Todo

Pulse la tecla «p» una vez, observe el resultado. Vuelva a pulsar la tecla «p» y observe el resultado. Las dos acciones anteriores añadieron ahora 6 líneas restaurando las eliminadas anteriormente y agregando tres líneas más con el mismo contenido:

Alcance Libre
un buen lugar donde comenzar
Creo que el mundo es un lugar muy bueno
Creo que el mundo es un lugar muy bueno
La gente que conozco es buena
Mi vida ha sido muy buena
La gente que conozco es buena
Mi vida ha sido muy buena
~
~
~
~
~
~
~
~
~
~
~
~
3 líneas más                                    2,1         Todo

Pulse ahora la tecla : (dos puntos) seguido de la tecla «x» y la tecla (ENTER) con la finalidad de salir del editor guardando el archivo.

SUSE™ Linux Enterprise carece del paquete vim-enhanced, por lo cual será imposible se muestre el resaltado de las búsquedas. Si utiliza este sistema operativo, omita los siguientes dos pasos.

Abra nuevamente el archivo adiosmundo.txt con vi y pulse la combinación de teclas :/buen, de modo que se realice una búsqueda de la cadena de caracteres «buen» y además se resalten las coincidencias:

Alcance Libre
un buen lugar donde comenzar
Creo que el mundo es un lugar muy bueno
Creo que el mundo es un lugar muy bueno
La gente que conozco es buena
Mi vida ha sido muy buena
La gente que conozco es buena
Mi vida ha sido muy buena
~
~
~
~
~
~
~
~
~
~
~
~
/buen                                           2,1         Todo

Para cancelar el resaltado de los resultados, pulse la combinación de teclas :nohl:

Alcance Libre
un buen lugar donde comenzar
Creo que el mundo es un lugar muy bueno
Creo que el mundo es un lugar muy bueno
La gente que conozco es buena
Mi vida ha sido muy buena
La gente que conozco es buena
Mi vida ha sido muy buena
~
~
~
~
~
~
~
~
~
~
~
~
                                                2,1         Todo

Pulse A (combinación de las teclas SHIFT+a) mientras el cursor permanece en la segunda línea y observe que iniciará el modo INSERTAR colocando el cursor al final de la línea donde se encontraba:

Alcance Libre
un buen lugar donde comenzar 
Creo que el mundo es un lugar muy bueno
Creo que el mundo es un lugar muy bueno
La gente que conozco es buena
Mi vida ha sido muy buena
La gente que conozco es buena
Mi vida ha sido muy buena
~
~
~
~
~
~
~
~
~
~
~
~
-- INSERTAR --                                  2,1         Todo

Pulse la tecla <Esc> y enseguida o. Notará que iniciará el modo INSERTAR abriendo una nueva línea:

Alcance Libre
un buen lugar donde comenzar
 
Creo que el mundo es un lugar muy bueno
Creo que el mundo es un lugar muy bueno
La gente que conozco es buena
Mi vida ha sido muy buena
La gente que conozco es buena
Mi vida ha sido muy buena
~
~
~
~
~
~
~
~
~
~
~
-- INSERTAR --                                  3,1         Todo

Pulse nuevamente la tecla <Esc> y en seguida la combinación dG (d, luego SHIFT+G). Notará que elimina todo el contenido del texto desde la posición del cursor hasta el final del archivo:

Alcance Libre
un buen lugar donde comenzar
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
7 líneas menos                                  2,1         Todo

Pulse la combinación :u y notará que el cambio se ha descartado, regresando las 7 líneas que habían sido eliminadas:

Alcance Libre
un buen lugar donde comenzar
 
Creo que el mundo es un lugar muy bueno
Creo que el mundo es un lugar muy bueno
La gente que conozco es buena
Mi vida ha sido muy buena
La gente que conozco es buena
Mi vida ha sido muy buena
~
~
~
~
~
~
~
~
~
~
~
7 líneas más                                    3,0-1       Todo

Una vez terminado el ejercicio, salga de la sesión del usuarios sin privilegios ejecutando lo siguiente:

exit

Otros mandatos de vi.

Mandato

Resultado

i [o bien la tecla insert]

Inicia el modo insertar antes del cursor

R (r + SHIFT)

Inicia el modo reemplazar al inicio de la línea donde se encuentra el cursor

a

Inicia insertar texto después del cursor

I (i + SHIFT)

Inicia insertar texto al inicio de la línea donde se encuentra el cursor

A (a + SHIFT)

Inicia insertar texto al final de la línea donde se encuentra el cursor.

o

Abre una nueva línea e inicia insertar texto en la nueva línea.

x

Elimina el carácter que esté sobre el cursor.

dd

Elimina o corta la línea actual donde se encuentre el cursor.

yy

Copia la línea actual donde se encuentre el cursor.

p

Pega una o más líneas copiadas o cortadas debajo de donde se encuentre el cursor.

D

Elimina desde la posición actual del cursos hasta el final de la misma línea donde se encuentra el cursor.

dG

Elimina todo hasta el final del archivo.

:q

Salida. Si hay cambios pendientes se impedirá la salida.

:q!

Salida descartando los cambios en el archivo.

:w

Guardar el archivo sin salir.

:wq

Guardar el archivo y sale de vi.

:x

lo mismo que :wq

:saveas /lo/que/sea

guarda el archivo como otro archivo donde sea necesario.

:wq! ++enc=utf8

codifica el archivo en UTF-8.

:u

deshacer cambios

:red

rehacer cambios.

:/cadena de caracteres

Búsqueda de cadenas de caracteres.

:nohl

Cancelar el resaltado de resultados de Búsqueda.

:e archivo

Edita un nuevo archivo en un nuevo búfer.

:bn o :bnext

Conmuta al siguiente archivo abierto.

:bp o :bprev

Conmuta al archivo abierto anterior.

:bd

Cierra búfer activo.

CTRL+W s o :split

Divide horizontalmente en dos búferes.

CTRL+W v

Divide verticalmente en dos búferes.

CTRL+W w

Conmuta entre en búferes abiertos.

CTRL+W s

Cierra el búfer activo.

Más allá de las funciones básicas.

Si utiliza ALDOS, CentOS o Fedora™, instale el paquete vim-enhanced:

yum -y install vim-enhanced

Utilice vimtutor y complete el tutor interactivo oficial de Vi con la finalidad de que conozca el resto de las funcionalidades más importantes.

Si algunos de nuestros foros, manuales, ALDOS, paquetería o proyectos te han resultado de ayuda, apreciaremos mucho nos apoyes con un donativo.

Última Edición: 26/08/2016, 09:24|Hits: 33,819 Ver la versión para imprimir