InicioLinuxManual de Vi (Parte I)

Manual de Vi (Parte I)

Linux9/23/2008
Manual de vi :


Codeando en C, en Vi .

Introducción:


El vi es el editor estándar de Unix. Este trabaja en modo 'full screen' . El vi tiene dos modos de trabajo:

-comandos e insercción. En el modo comandos todo lo que el usuario introduce es interpretado como un comando;
-en el modo insercción lo que el usuario introduce es tetxo qu eserá guardado en el archivo de salida.

La mejor forma de aprender a utilizar el vi es utilizándolo por ejemplo modificando un archivo existente (sea cuidadoso no edite o modifique un archivo que sea necesario, utilice un archivo de test con una copia de un archivo. Por ejemplo haga lo siguiente

% vi test

Cuando Ud entra en el editor puede salir pasando primero al modo comando. Esta acción se realiza mediante la tecla ESC el cursor bajará a la última línea y pondrá los ':' este prompt ( indica que está en el modo comando, por ejemplo para salir descartando todas las modificaciones es q! generalmente todos los comando son la primera letra de la acción (quit en este caso) y en el caso de ! indica que sin confirmación. Si se desean salvar los cambios será w (por write) y salvar los cambios y salir wq (por write & quit).

____________________________________________________________________________________________________________________

Modo Comando

El editor se inicia en el modo comando. Hay diferentes formas de ir al modo de insercción pero siempre se regresa a este modo con la tecla de ESC. Si no se está seguro en que modo está presione el ESC hasta que oiga un beep, lo cual le indicará que está en modo comandos.

Los comandos básicos de vi son:
:wq Salvar y Salir
:q! Salir sin salvar:
a Append: Modo insertar e la siguiente posición del cursor
i Insert: Modo insertar sobre la posición del cursor
x Borra caracter bajo el cursor
dw Borra palabra
dd Borra línea
u Deshacer (Undo)
Ctrl-F Pantalla sgte.
Ctrl-B Pantalla anterior
O Inserta línea en blanco



Secuencia de comandos básicos

El vi utiliza el editor ex cuando trabaja en modo comandos y siempre es la última línea de la pantalla con el prompt : por donde se le indican los comandos al ex. Los comandos admiten repetición que indicará cuantas veces se ejecutará el comando. Por ejemplo dd borra una línea pero 4dd borrará 4 líneas. La mayoría de los comando no producen salida por display de la acción, pero si cuando la acción es finalizada, por ejemplo cunado ponga 11dd (borrar 11 líneas) el vi le dirá '11 lines deleted'.


Movimientos dentro del archivo


Ud. debe estar en modo comando para moverse dentro del archivo. Generalmente las teclas de cursor funcionan bien (pueden no funcionar si Ud. está conectado a través de un emulador de terminal - desde un PC por ejemplo - y no coincide la variable TERM de Unix con la que Ud. está emulando, solución: cambie la variable TERM con -en csh- setenv TERM vt100 -en sh- TERM=vt100 export TERM y en el emulador seleccione como terminal vt100). Si Ud. está en modo insertar y presiona las teclas de cursor le insertará el caracter que ellas representan. Presionando la tecla RETURN se moverá a la siguiente línea. La tabla siguiente muestra los movimientos más comunes:
Return Siguiente línea
j Siguiente línea
k Línea previa
l Siguiente caracter
h Caracter anterior
Ctrl-F Pantalla siguiente
Ctrl-B Pantalla anterior
Ctrl-D Media pantalla siguiente
Ctrl-U Media pantalla anterior
[[ Inicio documento
]] Fin documento
nG Ir a línea n
w una palabra a la derecha
b una palabra a la izquierda
{ fin párrafo
} fin párrafo anterior
/string Busca string


Para ir a la línea 10 introduzca 10G (si sólo introduce G se moverá hasta el final del archivo). Para averiguaren que línea está presione Ctrl-G. Las palabras, sentencias, y párrafos tienen especial significado para el vi y existen comandos para moverse a través de ellas. Una palabra es cualquier caracter delimitado por blancos o puntuación y también cada símbolo de puntuación es una palabra. Sin embargo si Ud. utiliza la mayúcula del comando de movimiento se saltará la puntuación, por ejemplo B es lo mismo que b y mueve el cursor una palabra hacia atrás pero si hay un punto b se parará aqui pero B no.

Una sentecia es un string con un punto final y dos espacios en blanco. Con ) y ( Ud. se moverá hacia adelante una sentencia o hacia atrás respectivamente.

Un párrafo es el que termina con dos Return.

Búsqueda de strings

Las búquedas se realizarán en modo comando y para iniciarla debe presionar /. Esto causará que el cursor baje a la línea inferior, indique el string a buscar finalizando con un Return. Si desea buscar en orden inverso presione ? en vez de /.

____________________________________________________________________________________________________________________

Modo texto

Antes de ir al modo texto recordar que siempre se sale de él mediante un . La tabla siguiente muestra los

comando básicos para pasar a modo texto .
a append inserta después del caracter sobre el cual estamos
i insert antes de caracter sobre el que estamos
A append al final de la línea actual
I insert antes del 1º caracter diferente de espacio en la línea corriente
o abre una línea en blanco abajo de la actual
O ídem anterior pero sobre la actual



Correcciones

La única forma de corregir un error en modo texto es hacer un backspace y reintroducir los caracteres.

Correcciones más complejas deben ser realizadas desde el modo comandos. La tabla siguiente muestra los

comando que pueden ser utilizados:
x borra caracter
dw borra palabra
dd borra línea
r reemplaza un caracter sobre el cursor
R reemplaza un string de caracteres (sobreescribe)
cw cambia una palabra
s sustituye un caracter por un string
. repite el ultimo cambio


Un comando interesante es el punto (.) el cual repite el último cambio hecho en edición. Este puede ser

utilizado para cambiar cada ocurrencia de un string con otro, por ejemplo: si introducimos el comando /feo para buscar el string "feo". Entonces entre el comando cw e introduca "lindo" para reemplazar feo por lindo. Presione para aceptar el cambio. Para encontrar la siguiente ocurrencia introduzca el comando n y luego . para repretir el último cambio.

____________________________________________________________________________________________________________________

Comandos ex

La flexibilidad del vi está en el editor ex. En particular operaciones de búsqueda global y reemplazo están soportadas por el ex. Siempre sabemos cuales son los comandos ex porque aparecerá los : como prompt. Para pasar al modo comandos del ex Ud debe introducir desde el modo comando del vi (no insertando) los dos puntos (. En este modo el cursor bajará a la última línea del display y aceptará comando en modo ex. El comando es ejecutado cuando Ud. presiona el Return. Con Ctrl-C el comando es anulado. La siguiente tabla muestra alguno de los comandos básico del ex:
:w Escribe el archivo
:q sale sin guardar cambios
:e nombre Edita archivo nombre
:sh ejecuta un shell sin salir del editor




Movimientos dentro del ex


Sobre el ex puede ejecutar comando refiriéndose a las líneas del texto . Por ejemplo el punto (.) representa la línea actual, y el $ la última línea. Por lo tanto se pueden combinar tal como .,$ lo cual significaría desde la línea actual hasta hasta la última línea en el archivo. Combinando este tipo de especificación se pueden crear comandos tales como :.+1,$d para borra cada línea desde la actual hasta el fin del archivo. La palabra g puede ser utilizado para realizar el tratamiento com global.


Búsqueda y reemplazo global


El siguiente ejemplo es una búsqueda global con reemplazo para mostrar las capacidades del vi .

Se desea buscar la cadena viejo y sustituirla por nuevo, desde el principio al final del texto :

:1,$s/viejo/nuevo/g

Se desea buscar en todo el archivo "feo" y reeemplazarlo por "lindo":

:g/feo/s//lindo/g

Si se desea utilizar caracteres especiales de debe emplear el \ (backslash). Por ejemplo para reemplazar todos los $ en **:

:g/\$/s//**/g

El return también puede ser especificado introduciendo 'ControlV'.

____________________________________________________________________________________________________________________

Datos archivados del Taringa! original
10puntos
1,738visitas
0comentarios
Actividad nueva en Posteamelo
0puntos
1visitas
0comentarios
Dar puntos:

Dejá tu comentario

0/2000

Autor del Post

T
TerMight🇦🇷
Usuario
Puntos0
Posts10
Ver perfil →
PosteameloArchivo Histórico de Taringa! (2004-2017). Preservando la inteligencia colectiva de la internet hispanohablante.

CONTACTO

18 de Septiembre 455, Casilla 52

Chillán, Región de Ñuble, Chile

Solo correo postal

© 2026 Posteamelo.com. No afiliado con Taringa! ni sus sucesores.

Contenido preservado con fines históricos y culturales.