Funciones básicas de Vi.

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

Creative Commons Reconocimiento-NoComercial-CompartirIgual 2.1

© 1999-2007 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 fichero 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 poderos y añejos que hay en el mundo de la informática. Resulta sumamente útil conocer la funcionalidad básica de Vi a fin de facilitar la edición de ficheros de texto simple, principalmente ficheros 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. Puede añadirse funcionalidad adicional a través de los siguientes paquetes:

vim-enhanced: Una versión mejorada de vi que añade color a la sintaxis y otras mejoras en la interfaz.
vim-X11: Versión de vi para modo gráfico que resulta más fácil de utilizar gracias a los menús y barra de herramientas.

Si lo desea, puede proceder a instalar Vi y el resto de los paquetes relacionados realizando lo siguiente:

yum -y install vim vim-enhanced vim-common vim-minimal

Conociendo vi.

Acceda al sistema autenticando como usuario sin privilegios (fulano) y realice lo siguiente:

vi holamundo.txt

Lo anterior mostrará una interfaz como la siguiente:

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

Pulse una vez el botón <INSERT> de su teclado y observe los cambios en la pantalla

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

Note que en la parte inferior de la pantalla aparece la palabra «INSERTAR». Esto significa que, al igual que cualquier otro editor de texto conocido, puede comenzar a insertar texto en el fichero. Escriba la frase «Alcance Libre», pulse la tecla <ENTER> y escriba de forma propositiva la frase «un vuen citio donde empesa»:

Alcance Libre
un vuen citio donde empesar
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
-- 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. Notará que ahora aparece la palabra «REEMPLAZAR»:

Alcance Libre
un vuen citio donde empesar
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
-- 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 citio donde empesar
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
-- REEMPLAZAR --                                  0-1        Todo

Mueva el cursor con las flechas del teclado y repita el procedimiento reemplazando la letra «c» por una «s» en la palabra «citio» de modo que quede como «sitio» y de igual modo reemplace la letra «s» por una «z» en la palabra «reemplasar» de modo que quede como «empezar»:

Alcance Libre
un buen sitio 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» a fin de proceder a guardar el fichero en el disco duro:

Alcance Libre
un buen sitio donde empezar
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
:w

Pulse la tecla <ENTER> y notará que aparece un mensaje en la parte inferior de la pantalla que indicará que el fichero ha sido guardado:

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

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

Alcance Libre
un buen sitio donde empezar
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
:saveas adiosmunto.txt

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

Alcance Libre
un buen sitio donde empezar
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
"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 sitio donde empezar
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 sitio donde empezar
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 fichero, quedando del siguiente modo:

Alcance Libre
un buen sitio donde empezar
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 fichero, no solo en la misma línea, 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, posiciones el cursor de teclado utilizando las flechas del teclado hasta el primer carácter de la primera línea:

Linux Para Todos
un buen sitio donde empezar
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

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

un buen sitio donde empezar
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 sitio donde empezar
Linux Para Todos
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 sitio donde empezar». Utilizando las flechas del teclado, coloque el cursor del teclado nuevamente sobre el primer carácter de la primera linea del fichero, es decir, sobre la letra «u» de la línea «un buen sitio donde empezar»:

un buen sitio donde empezar
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 linea «un buen sitio donde empezar» e inmediatamente pulse la tecla «p» para pegar la linea en el lugar correcto:

Alcance Libre
un buen sitio donde empezar
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 linea «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 sitio donde empezar
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
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 sitio donde empezar
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> a fin de salir guardando el fichero.

Abra nuevamente el fichero 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 sitio donde empezar
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 sitio donde empezar
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 linea y observe que iniciará el modo INSERTAR colocando el cursor al final de la línea donde se encontraba:

Alcance Libre
un buen sitio donde empezar 
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 sitio donde empezar
 
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 fichero:

Alcance Libre
un buen sitio donde empezar
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
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 sitio donde empezar
 
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

Otras combinaciones de teclas.

Combinación Resultado
i [o bien la tecla insert] Inicia insertar texto antes del 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 la línea actual 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 fichero.
:q sale si no hubo cambios en el ficheros.
:q! sale descartando los cambios en el fichero.
:w guarda el fichero sin salir.
:wq guarda el fichero y sale de vi.
😡 lo mismo que :wq
:saveas /lo/que/sea guarda el fichero como otro fichero donde sea necesario.
:wq! ++enc=utf8 codifica el fichero 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.

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

Instale el paquete vim-enhanced:

yum -y install vim-enhanced

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

Anuncios

Deja una opinión

Por favor, inicia sesión con uno de estos métodos para publicar tu comentario:

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