Вы находитесь на странице: 1из 12

vi Editor de Pantalla pag.

serie UNIX - num. 3

vi
EDITOR DE PANTALLA

RESUMEN DE INSTRUCCIONES

por Angel Salas CENTRO DE CALCULO UNIVERSIDAD DE ZARAGOZA Noviembre -1990

vi Editor de Pantalla pag. 2

El editor vi
1. Introduccin 2. Entrar, salir, guardar o no guardar cambios 3. Movimientos del cursor 4. Localizar texto 5. Operaciones de edicin 6. Mover y copiar bloques de texto 7. Pasar rdenes al sistema operativo 8. Cambiar el entorno de trabajo

1. Introduccion
Es un programa para editar ficheros en modo pantalla. Aqui se presenta slo una seleccin de instrucciones de vi que permiten realizar las operaciones de edicin de textos ms frecuentes; por tanto no debe considerarse esta publicacin como un manual de referencia completo. El editor vi realiza las operaciones de edicin del texto sobre un rea de trabajo que se llama "buffer". El fichero a editar se copia al "buffer" y todas las modificaciones se realizan sobre esta copia. Al final, el contenido del "buffer" se puede pasar al fichero original, sustituyendo su contenido, o se puede llevar a un fichero nuevo. En una sesin de edicin con vi hay tres modos de operacin para ejecutar rdenes:

vi Editor de Pantalla pag. 3

El modo Instruccin (Command) Es el estado inicial de trabajo y el estado al que se vuelve cuando termina la ejecucin de una orden o se sale de otros estados. En este modo de operacin, se puede ejecutar cualquier orden, excepto las exclusivas del modo "Input". Cada orden se invoca pulsando una tecla (letra, casi siempre), cuyo smbolo no se visualiza en pantalla. Pulsando <ESC>, se puede cancelar una instruccin parcial dentro de este modo de operacin. El modo Entrada (Input) Se pasa al modo Input ejecutando cualquiera de las subinstrucciones siguientes: a, A, i, I, o, O, c, C, s, S, R. Entonces se puede introducir texto en el "buffer" desde la posicin actual del cursor. La salida normal se consigue pulsando <ESC>. La salida anormal se logra enviando seal de interrupcin (<CTRL-C>, habitualmente).

Ultima linea (Last line) Algunas rdenes (las que llevan como prefijo: :, \, ?, !!) se leen en la linea inferior de la pantalla. Cuando se escribe el primer carcter, el editor coloca el cursor en dicha linea para que escribamos all el texto de la orden. Pulsado despus <ENTER>, se ejecuta la orden y se puede cancelar enviando la seal de interrupcin (<CTRL-C>, habitualmente).

2. Entrar, salir, guardar o no guardar cambios


En los dos ejemplos que siguen, se indica lo que habra que escribir por el teclado para llamar al editor, introducir texto y salir creando un fichero nuevo que contendra esas cuatro lineas de texto.

vi Editor de Pantalla pag. 4

Con el subrayado se quiere indicar que hay que pulsar esas teclas, pero no se visualizarn los smbolos correspondientes en la pantalla.

En el ejemplo num. 1, se invoca al editor indicando el nombre de un fichero nuevo, se pasa al modo de insercin pulsando la tecla de la "a" (que no aparecer por pantalla), se escriben cuatro lineas de texto, se pulsa la tecla ESC para terminar la insercin de texto (se sale del modo Input) y se pulsan dos "Z" para que se cree un fichero nuevo, con el nombre declarado antes, conteniendo las lineas de texto escritas.

Ejemplo num. 1: $ vi fichero a esta es la primera linea esta es la segunda linea esta es la tercera esta es la ultima linea de texto <ESC> ZZ $

Ejemplo num. 2: $ vi a esta es la primera linea esta es la segunda linea esta es la tercera esta es la ultima linea de texto <ESC> :w fichero :q $

En el ejemplo num. 2, no se declara nombre de fichero al llamar al editor, pero se consigue le mismo resultado final con la orden ":w" (write). Despus se abandona al editor con la orden ":q" (quit). $ vi $ vi fichero a <ESC> ZZ :w fichero :q llamar al editor llamar al editor copiando el contenido de "fichero" al buffer, si es que existe un fichero con ese nombre pasar al modo Input para introducir texto a continuacin del cursor volver al modo instruccin (Command) salir del editor guardando los cambios escribir el contenido del buffer en el fichero indicado abandonar el editor. Si se hicieron cambios en el fichero sin guardarlos, se notifica tal circunstancia y no se ejecuta la orden. se abandona el editor inmediatamente, descartando los cambios

:q!

vi Editor de Pantalla pag. 5

INPUT
a A i I o O

<ESC>

vi vi fichero

COMMAND
/cadena nG <CTRL F> <CTRL B> : ! :w fichero :!orden !!orden :sh :set opcion x dd ndd dnG

ZZ

:q :quit!

LAST LINE

vi Editor de Pantalla pag. 6

3. Movimientos del cursor


Las rdenes siguientes se ejecutan en modo Instruccin (Command) Desplazamientos del cursor: Desplazamientos pequeos : h j k l hacia la izquierda hacia abajo hacia arriba hacia la derecha

Posicionamiento con respecto a un carcter: 0 $ n| ir al principio de linea ir al final de linea ir a la columna indicada

Posicionamiento con respecto a palabras: w b e ir al comienzo de la palabra siguiente ir a la palabra anterior ir al final de la palabra

Posicionamiento respecto a lineas de la pantalla: H L M ir a la primera linea del texto en pantalla ir a la ltima linea de la pantalla ir a la mitad de la pantalla

Movimientos a lo largo del fichero: <enter> + numG G pasar a la linea siguiente pasar a la linea siguiente pasar a la linea anterior lleva el cursor hasta la linea en posicin "num" en el fichero lleva el cursor hasta la ltima linea del fichero

vi Editor de Pantalla pag. 7

Desplazamiento de texto por la pantalla (scrolling): <CTRL-U> <CTRL-D> <CTRL-F> <CTRL-B> subir media pantalla bajar media pantalla avanzar una pantalla retroceder una pantalla

4. Localizar texto
Todas estas rdenes tambin se ejecutan en modo instruccin. /cadena ?cadena n N lleva el cursor hasta la siguiente linea donde exista esa cadena. lleva el cursor hasta la linea precedente ms prxima donde exista esa cadena. se repite la ltima orden de bsqueda en la misma direccin se repite la ltima orden de bsqueda en direccin contraria

5. Operaciones de edicin
INSERTAR texto, pasando a modo Input: atexto Atexto itexto Itexto inserta texto a continuacin del cursor inserta texto al final de la linea inserta texto por detras de la posicin del cursor inserta texto por detras del primer carcter de la linea que sea distinto de espacio en blanco

AADIR lineas vacas, pasando a modo Input: o O aade una linea vaca por debajo de la linea actual aade una linea vaca por encima de la linea actual

vi Editor de Pantalla pag. 8

BORRAR : x dw d$ dd ndd dnG borra el carcter apuntado por el cursor borra una palabra borra el resto de la linea borra la linea apuntada por el cursor borra "n" lineas incluyendo la activa borra hasta la linea nmero "n"

CAMBIAR, pasando a modo Input: s S cw cc c$ Rtexto sustituye el carcter apuntado por uno o ms nuevos sustituye la linea apuntada por lo que se escriba a continuacin cambia la palabra apuntada por una o ms nuevas cambia la linea apuntada por una o ms nuevas cambia el resto de la linea sobreimprimir caracteres con texto a partir de la posicin del cursor

vi Editor de Pantalla pag. 9

6. Mover y Copiar bloques de texto


Mover bloques de texto (CORTAR Y PEGAR): "delete" y "put" Copiar bloques de texto (COPIAR Y PEGAR): "yank" y "put" Usar "buffers" con nombre para mover o copiar texto

CORTAR Y PEGAR bloques de texto (MOVER): -Se borra el bloque de texto con una sola orden -Se lleva el cursor a la nueva posicin -Se ejecuta una orden "p" (con "p" se pone el texto despus del cursor, con "P" se pone por detrs) Ejemplos: 4dd (borra 4 lineas, incluyendo la actual) se lleva el cursor a la nueva posicin p (pone las 4 lineas en la nueva posicin) d24G dG dd borra lineas hasta la nmero 24 borra lineas hasta el final del fichero borra la linea actual

COPIAR Y PEGAR bloques de texto (COPIAR): -Se lleva el cursor hasta apuntar al primer carcter del bloque de texto -Se copia el texto con una orden "y" ("yank") -Se lleva el cursor a la nueva posicin -Se ejecuta una orden "p" Ejemplos: y32G (copia desde posicin actual hasta la linea num. 32) se lleva el cursor a la nueva posicin p

vi Editor de Pantalla pag. 10

GUARDAR, EN "BUFFERS" CON NOMBRE, el texto cortado o copiado: Se pueden usar hasta 26 "buffers", que se identifican con una letra minscula (de la "a" a la "z"). El contenido del "buffer" se puede usar en cualquier momento y se conserva hasta salir del editor. Para pasar texto al "buffer" se escribe: -Las comillas -El nombre del "buffer" -La orden para cortar o copiar Para poner el contenido del "buffer" en el fichero: -Se lleva el cursor a la posicin -Se escribe: -Las comillas -El nombre del "buffer" -La letra "p" o la letra "P" Ejemplos: "ad20G se mueve el cursor "ap "b3yy se mueve el cursor "bp

7. Pasar rdenes al sistema operativo


!!orden se ejecuta una orden de shell y se incluye su salida en el buffer (Ejecutando "cat" se insertara el contenido de otro fichero) se ejecuta una orden de shell y se vuelve al editor se pasa al shell para ejecutar rdenes. Se vuelve al editor pulsando <CTRL-D>

:!orden :sh

vi Editor de Pantalla pag. 11

8. Cambiar el entorno de trabajo


Las condiciones de trabajo iniciales del editor se pueden modificar para disponer de un entorno operativo personalizado. Se pueden cambiar las opciones, definir abreviaturas y definir macros.

OPCIONES: Algunas de las condiciones genrales que afectan a las operaciones del editor se pueden modificar cambiando el valor de las opciones que las representan. Para activar una opcin: Para desactivar una opcin: : set opcion : set noopcion (: set number) (: set nonumber)

Algunas de las opciones ms tiles: all autoindent muestra todas las posibles hace que cada linea se escriba con la misma indentacin que la anterior. Comenzar en la misma columna que la anterior. para que cada linea vaya precedida por su nmero de posicin en el fichero. para indicar el modo de trabajo activo, con un mensaje escrito en la parte baja de la pantalla para que se seale el smbolo de apertura correspondiente al escribir uno de cierre ( ")", "}", ">")

number showmode showmatch

ABREVIATURAS: Se pueden establecer abreviaturas para designar a cadenas de caracteres largas. Cada vez que se escriba la abreviatura, se sustituir por la cadena equivalente. Para definir abreviatura: Para cancelar abreviatura: : ab abreviatura equivalencia : una equivalencia

vi Editor de Pantalla pag. 12

Ejemplo:

: ab ccuz Centro de Calculo de la Universidad de Zaragoza

MACROS: Definiendo una macro, se puede asociar un carcter a una secuencia de rdenes para que resulte ms cmoda su ejecucin en lo sucesivo. Para definir una macro: Para anular una macro: Ejemplo: : map tecla secuencia_de_ordenes : umap tecla

: map m dd k "ap

Con esa definicin, cada vez que se pulse la tecla "m", se sustituir la linea apuntada por el cursor por el contenido del "buffer a" (se borra la linea, se lleva el cursor a la linea precedente y se trae el contenido del "buffer a").

CONSERVAR LA DEFINICION DEL ENTORNO OPERATIVO Todas las rdenes necesarias para configurar el entorno operativo personal (cambio de opciones, definicin de abreviaturas y de macros) se pueden almacenar en un fichero de nombre ".exrc", dentro del directorio de entrada ($HOME), y sern ejecutadas automticamente por el editor cada vez que sea invocado.

Вам также может понравиться