programación ii ing. diego j. arcusin [email protected] 1 – el editor vi

21
Programación II Ing. Diego J. Arcusin [email protected] 1 – El editor VI

Upload: bibiana-puebla

Post on 22-Jan-2016

216 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Programación II Ing. Diego J. Arcusin info@digikol.com.ar 1 – El editor VI

Programación II

Ing. Diego J. Arcusin [email protected]

1 – El editor VI

Page 2: Programación II Ing. Diego J. Arcusin info@digikol.com.ar 1 – El editor VI

Invocación

El editor se invoca mediante el comando vi

Si se lo invoca enviando como parámetero un archivo existente, se

abrirá el editor junto con el archivo abierto listo para editar.

Si se lo invoca enviando como parámetero un archivo inexistente, se

abrirá el editor y se creará automáticamente el archivo con el

nombre especificado.

El vi no trabaja directamente sobre el archivo, sino que lo hace

sobre un buffer (una copia en memoria temporal). El archivo original

recién se graba al invocar algún comando de grabación del archivo.

Page 3: Programación II Ing. Diego J. Arcusin info@digikol.com.ar 1 – El editor VI

Modos

Existen 2 modos de operación:Modo Edición.

Permite trabajar libremente con los textos del archivo. Siempre que

se desee salir del modo edición y pasar al modo comando, debe

presionarse <esc>.

Modo Comando

Permite la introducción de comandos para la ejecución de funciones

específicas del vi.

Al arrancar el Editor, siempre el sistema está en modo

comando.

Page 4: Programación II Ing. Diego J. Arcusin info@digikol.com.ar 1 – El editor VI

Principales Comandos

Grabación y Salida del Editor

Movimiento

Inserción de Texto

Modificación de Texto

Eliminar Texto

Copiar y Mover Texto

Búsqueda y Reemplazo

Otros Comandos

Repetición de comandos

Comandos EX

Page 5: Programación II Ing. Diego J. Arcusin info@digikol.com.ar 1 – El editor VI

Grabación y Salida del Editor

:q Sale del editor (Sólo funciona si no hubo cambios)

:q! Fuerza la salida del editor aunque haya habido cambios

:w Graba al archivo el contenido del buffer

:w xxxxxx Graba el contenido del buffer en el archivo xxxxxx

:wq Graba al archivo el contenido del buffer y sale del editor

Page 6: Programación II Ing. Diego J. Arcusin info@digikol.com.ar 1 – El editor VI

Movimiento

De caracter en caracter Si la terminal se encuentra bien configurada, se pueden utilizar las flechas

del teclado. En forma alternativa, también se pueden utilizar: l o Barra espaciadora un caracter a la derecha

h un caracter a la izquierda

k un caracter hacia arriba

j un caracter hacia abajo

De palabra en palabra w (word) Una palabra hacia adelante

b (before) Una palabra hacia atrás

Page 7: Programación II Ing. Diego J. Arcusin info@digikol.com.ar 1 – El editor VI

Movimiento (cont.)

Dentro de una línea ^ Nos ubicamos al inicio de la línea $ Nos ubicamos al final de la línea Return Nos ubicamos al inicio de la siguiente línea

Dentro de una pantalla H Nos ubicamos en la parte superior - izquierda de la pantalla L Nos ubicamos en la parte inferior - izquierda de la pantalla M Nos ubicamos en la parte central de la pantalla

Avance / Retroceso de Página Ctrl-F Avanza una pantalla Ctrl-B Retrocede una pantalla Ctrl-D Avanza media pantalla Ctrl-U Retrocede media pantalla

Page 8: Programación II Ing. Diego J. Arcusin info@digikol.com.ar 1 – El editor VI

Inserción de Texto

Todos estos comandos pasan el editor a modo edición Agregar Texto

a (append) Inserta el texto a la derecha del cursor A Inserta el texto a la derecha del último caracter de la

línea actual

Insertar Texto i (insert) Inserta el texto a la izquierda del cursor I Inserta el texto al principio de la línea actual

Insertar una línea o (open) Abre una línea debajo de la línea actual O Abre una línea arriba de la línea actual

Page 9: Programación II Ing. Diego J. Arcusin info@digikol.com.ar 1 – El editor VI

Modificación de Texto

Caracteres s Sustituye el caracter actual por uno o más caracteres. r Sustituye el caracter actual por otro caracter, y vuelvo a modo

comando

Palabras cw Sustituye la palabra (o parte de la palabra) actual

Líneas cc Sustituye la línea actual completa C Sustituye la línea desde el caracter actual J Une dos líneas (Borra el caracter nueva línea de la línea

actual)

Page 10: Programación II Ing. Diego J. Arcusin info@digikol.com.ar 1 – El editor VI

Eliminar Texto

Caracteres x Borra el caracter donde se encuentra el cursor X Borra el caracter a la izquierda donde se encuentra el cursor

Palabras dw Borra la palabra (o parte de la palabra) actual

Líneas dd Elimina la línea actual (y el espacio que ocupa) completa D Elimina todo lo que está a la derecha del cursor. d0 Elimina todo lo que está a la izquierda del cursor.

Archivo dG Borra desde la línea actual hasta el final del archivo d1G Borra desde el principio del archivo hasta la línea actual

Page 11: Programación II Ing. Diego J. Arcusin info@digikol.com.ar 1 – El editor VI

Copiar y Mover Texto

Copiar y PegarColocarse en la primera línea a copiarEscribir el número de líneas a copiar seguido de yy (yank)Colocarse en la línea donde se desea pegar seguido de p

(paste)

Cortar y PegarColocarse en la primera línea a cortarEscribir el número de líneas a copiar seguido de dd (delete)Colocarse en la línea donde se desea pegar seguido de p

Page 12: Programación II Ing. Diego J. Arcusin info@digikol.com.ar 1 – El editor VI

Copiar y Mover Texto (Cont.)

Util para insertar repetidamente un grupo de líneas en varios

lugares del archivo ¿Cómo utilizarlos?

Colocarse en la primera línea a copiar Escribir comillas dobles seguido de la letra con la que se desea nombrar el

buffer (Por ejemplo: “a) Escribir el número de líneas a cortar o copiar Teclear yy o dd Colocarse en la línea donde se desea pegar Teclear comillas dobles seguido de la letra del buffer que se desea pegar

seguido de p

Page 13: Programación II Ing. Diego J. Arcusin info@digikol.com.ar 1 – El editor VI

Búsquedas de Texto

Búsqueda /[cadena] Se posiciona sobre la siguiente ocurrencia de cadena respecto a

la posición actual ?[cadena] Se posiciona sobre la anterior ocurrencia de cadena respecto a

la posición actual n Busca la siguiente (anterior si se uso ?) ocurrencia de la cadena N Busca la anterior (siguiente si se uso ?) ocurrencia de la cadena :set ic Búsquedas Case Sensitive :set noic Búsquedas No Case Sensitive

Consideraciones Los caracteres (/& ! . ^ * $ \ ?) son especiales por lo que para ser utlizados en

búsquedas deberán ser precedidos por \ (barra invertida)

Page 14: Programación II Ing. Diego J. Arcusin info@digikol.com.ar 1 – El editor VI

Búsquedas de Texto (Cont.)

Indicadores para búsquedas mas precisas ^ Busca al inicio de una línea $ Busca al final de una línea \< Busca al inicio de una palabra \> Busca al final de una palabra

Metacaracteres . Busca cualquier caracter (1 sola ocurrencia) * Busca cualquier caracter (cero o más ocurrencias) [ab] Reemplaza por cualquier caracter entre los corchetes [a-b] Reemplaza por cualquier caracter en el rango especificado

Page 15: Programación II Ing. Diego J. Arcusin info@digikol.com.ar 1 – El editor VI

Reemplazar Texto

El formato para comoandos de reemplazo es el

siguiente: :g/cadena/s//nuevacadena/g

Se pueden utilizar cualquiera de los mecanismos de

búsqueda antes mencionados.Modificando la opción /g por /gc el vi pide confirmación

antes de cada reemplazo.

Page 16: Programación II Ing. Diego J. Arcusin info@digikol.com.ar 1 – El editor VI

Otros comandos

Deshacer (Undo) u Deshace el último comando U Deshace todos los cambios realizados en la línea

Insertar archivos :r archivo Inserta el archivo en la posición actual del cursor :nrolinea r archivoInserta el archivo a partir de la línea nrolinea

Es posible ejecutar comandos del Shell sin salir del editor. :!comandoshell Ejecuta un comando del shell y vuelve al

editor !!comandoshell Ejecuta un comando del shell y se incluya su

salida en el archivo :sh Ejecuta un shell. Al salir del shell (Ctrl-D)

vuelve al editor.

Page 17: Programación II Ing. Diego J. Arcusin info@digikol.com.ar 1 – El editor VI

Repetición de comandos

Repetición de comandos . Repite el último comandoLos comandos se pueden preceder por un número que indica

cuántas veces se debe repetir el comando. Por ejemplo:10x Borra 10 caracteres5dd Borra 5 líneas10. Repite 10 veces el ultimo comando2Ctrl-F Avanza 2 páginas

Page 18: Programación II Ing. Diego J. Arcusin info@digikol.com.ar 1 – El editor VI

Comandos EX

:#lineaA,#lineaB co #lineaC Copia líneas :#lineaA,#lineaB m #lineaC Mueve líneas :#lineaA,#lineaB d Eliminalíneas

linea A = Linea Desde – lineaB = Línea Hasta – lineaC = Línea Destino

En lugar de los nros de línea, también se pueden utilizad: . Línea Actual (donde se encuentra el cursor) $ Ultima línea del archivo

:set nu Permite visualizar los nros de línea :set no Quita la numeración

Page 19: Programación II Ing. Diego J. Arcusin info@digikol.com.ar 1 – El editor VI

El Entorno de trabajo

El vi permite modificar el entorno de trabajo mediante opciones Para activar una opción

:set opcion

Para desactivar una opción :set noopcion

Algunas opciones autoindent Hace que la línea siguiente conserver la

indentación de

la anterior number Numera las líneas (:se nu es en definitiva un apócope ) showmode Indica visualmente el modo de trabajo activo

Page 20: Programación II Ing. Diego J. Arcusin info@digikol.com.ar 1 – El editor VI

El Entorno de trabajo (Cont.)

Abreviaturas Se pueden establecer abreviaturas para cadenas largas. Al escribir la abreviatura el

editor reemplazará la misma por el texto correspondiente :ab abreviatura cadena larga (Ej: :ab uc Universidad del Cema) :una abreviatura Elimina la abreviatura

Macros Se puede asignar a un caracter una secuencia de comandos para facilitar su

ejecución recurrente. :map tecla secuencia_comandos (Ej: :map m dd k “ap) :umap tecla Elimina la macro

Se pueden conservar las definiciones personales del entorno de trabajo

(opciones, abreviaturas y macros) mediante la creación de un archivo

llamado .exrc en el Home Directory del usuario.

Page 21: Programación II Ing. Diego J. Arcusin info@digikol.com.ar 1 – El editor VI

Ejercicios

Experimente los comandos W (mayúscula) y B

(Mayúscula), que diferencias encuentra con w y b.

Investigue las siguientes opciones de Entorno:showmatch

all

Ingrese el comando :se all ¿Qué ocurre?