Manual De Vi Parte 2

  • May 2020
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Manual De Vi Parte 2 as PDF for free.

More details

  • Words: 6,767
  • Pages: 21
Manual de vi

1 de 21

http://ar.geocities.com/linuxsanjuan/editores/vi.html

undefined

undefined Más...

undefined [Cerrar]

Indice

Introducción

Introducción

Este trabajo es una introducción al editor vi, lo llamamos introducción ya que para conocer completamente el vi necesitariamos muchos años de práctica y estudio. La orientación de este trabajo es que despues de leerla, tenga un adecuado conocimiento de las operaciones mas simples que realiza el editor vi.

Informacion General Acerca de vi

La mayor parte de este documento se basa en ejemplos de comandos que se pueden Una breve sesión de Vi emplear en el uso del editor y en algunos casos se emplean palabras en inglés o castellanizadas para su mejor comprensión, como por ejemplo: seteo. Arrancando Vi Cuando realice los ejercicios ingrese el texto exactamente como aparece con algunas excepciones: el texto en italica significa que se debe sustituir el texto (como por ejemplo un Modo Inserción y nombre de archivo). modo Comando Insertando Texto

Los comandos de vi son sensibles a las mayúsculas o minúsculas, lo cual significa que las letras mayúsculas y minúsculas no son el mismo comando. Por ejemplo, j (jota minúscula) mueve el cursor hacia abajo, pero J (jota mayúscula) combina dos líneas en una sola .

La palabra RETURN representa la acción de presionar la tecla RETURN o ENTER . ESC Movimiento del cursor indica presionar la tecla ESCAPE . También , algunas veces verá combinaciones de teclas tales como CTRL-F. CTRL-F significa que debe mantener presionada la tecla CONTROL Borrando texto or CTRL, y presionar F. La tecla CTRL trabaja de manera similar a la tecla SHIFT. Haciendo Correcciones

Información General

Deshacer

Acerca de Vi

Uniendo lineas

vi (pronunciado algunas veces como vee-eye, es una abreviatura de "visual") provee capacidad de edición de texto básicas. Hay tres aspectos de vi que lo hacen atractivo. Primero, vi es proporcionado con todos los sistemas UNIX . Ud. puede usar vi en cualquier lugar donde exista un sistema operativo Unix , ya sea en otras universidades o en otras empresas. Segundo, vi usa una pequeña cantidad de memoria, lo cual permite una operación eficiente cuando la red está muy ocupada. Tercero, porque vi usa teclas alfanuméricas standares para los comandos, usted puede usarlo en alguna terminal virtual o una estación de trabajo sin tener que preocuparse por mapeos de teclas inusuales.

Grabar su Trabajo Una Segunda Sesión Repetir Comandos Numeros de Linea Marcadores

Una breve Sesión vi

Otros modos Insert

Arrancando vi

Cotar, copiar y pegar

Para arrancar vi ingrese el siguiente comando:

Buffers

# vi nombre_archivo RETURN

Por numero de linea

Donde nombre_archivo es el nombre del archivo que Ud. desea editar. Si el archivo no

06/12/2008 04:23 p.m.

Manual de vi

2 de 21

Cortar y Pegar General Usando Marcadores PegarBuscar y Reemplazar Busqueda Simple Caracteres Especiales Buscar y Reemplazar

http://ar.geocities.com/linuxsanjuan/editores/vi.html

existe , vi lo creará. También puede arrancar vi sin dar un nombre_archivo. En este caso , vi le pedirá un nombre cuando termine o grabe su trabajo. Ejercicio 1: Arranque vi preparando para un ejercicio tutorial; en todo este documento , los ejercicios usarán el archivo , ejemplo. Entonces en una terminal tipee lo siguiente: #vi ejemplo RETURN Limpia la ventana y muestra el contenido del archivo, ejemplo. Dado que este es un nuevo archivo, no contiene ningún texto. vi usa el caracter (~) para indicar lineas en la pantalla más allá del final el archivo. vi usa el cursor para indicar donde su próximo comando o inserción de texto tomará efecto. Al pie de la ventana, vi mantiene una línea de estado, llamada línea de modo.Esta línea muestra la línea corriente del archivo, el nombre_archivo, y el estado.

Banderas Especiales Temas Avanzados

Ejercicio 2: Cuando comienza la edición del archivo, chequee la linea de estado. En ella leerá lo siguiente:

Variables "ejemplo" [New file] Variables Numéricas y Swith

Modo Comando y Modo Inserción Uso de variables Teclas especiales y Ctrl -V Mapeando Teclas Macros Grabando la Configuracion de Vi

vi tiene dos modos, modo comando y modo inserción. En el modo comando, los caracteres que ud. tipee realizan funciones tales como movimiento del cursor, cortar o copiar texto, o buscar por algun texto particular. En el modo inserción, se tipea para insertar o sobreescribir texto. Cuando arranca vi lo hace por defecto en modo comando. Para cambiar desde modo comando a modo inserción, presione la tecla "i" (no es necesario presionar RETURN). vi le permite insertar texto comenzando desde la ubicación corriente del cursor. Para volver a cambiar a modo comando, presione la tecla ESC. Puede también usar ESC para cancelar un comando incompleto en el modo comando. Desafortunadamente, vi normalmente no indica en que modo se encuentra . En el próximo ejercicio debe cambiar el indicador de modo. Si está inseguro acerca del corriente modo, puede presionar ESC unas cuantas veces para asegurarse que cambió el modo. Cuando vi hace sonar el beep, sigtnifica que se ha retornado al modo comando.

Ejercicio 3: Antes de comenzar a tipear el texto, se activa el indicador de linea de modo . Puede ser que no se requiera usarlo , pero esta le avisará si está en modo comando o en modo inserción. Tipee lo siguiente: :set showmode RETURN Nada parece haber cambiado. Cuando se encuentra en modo comando, no hay indicador, pero si entra en modo inserción , le aparecerá el modo en la esquina inferior derecha de la pantalla. . Insertando

Texto

06/12/2008 04:23 p.m.

Manual de vi

3 de 21

http://ar.geocities.com/linuxsanjuan/editores/vi.html

Mientras está en modo inserción, puede ingresar texto normalmente. vi reconoce unas cuantas combinaciones de teclas especiales cuando las tipea. TABLA 1. Comandos para Insertar Texto Backspace Borra el carácter previo Delete Borra el carácter corriente

CTRL-W Borra la palabra previa CTRL-U Borra la linea actual RETURN Comienza una linea nueva

Ejercicio 4: Para entrar en modo inserción, presione: i Note que en la esquina inferior derecha, vi indica que está en modo inserción. Entonces ingrese el siguiente texto, y recuerde presionar RETURN al final de cada línea. Puede usar las combinaciones de teclas especiales si comete un error. Nos mezclamos para golpear el campo. El agua choca bajo nuestro, demasiado lejos lentamente en pies y manos. Nuestros refugios se oscurecen desagradablemente.El eco del trueno sacude las nubes, aun el suelo retumba cada vez que se sacude. Echamos una mirada hacia atrás, surcamos un océano creciente detrás nuestro. Justamente no parará de llover. Nuestras tiendas deterioradas fueron un pobre refugio esta noche. Cae un rayo destellante sobre la colina, fabricamos una pequeña caberna en la ladera de la montaña. Un refugio seguro, pienso. Nuestro refugio se destrona, pero se levanta hacia delante poniendose seguro. Después de ingresar este texto, presione ESC para volver al modo comando. Note que la linea de modo se limpia.

Movimiento del Cursor Ud.necesitará mover el cursor en todo el archivo. Puede mover el cursor en modo comando. vi tiene algunos comandos diferentes para mover el cursor. Las cuatro teclas básicas aparecen mas adelante. Puede también usar la tecla backspace y barra espaciadora para mover a izquierda y derecha, respectivamente. k mueve una línea arriba (similar a la tecla ) h

06/12/2008 04:23 p.m.

Manual de vi

4 de 21

http://ar.geocities.com/linuxsanjuan/editores/vi.html

mueve un carácter a la izquierda sobre la linea (similar a la tecla ¬) l mueve un carácter a la derecha sobre la linea (similar a la tecla ®) j mueve una línea abajo (similar a la tecla ¯)

Una tabla de comandos de movimientos adicional aparece mas abajo. Note que vi tiene sus propias definiciones de sentencias y párrafos, asi comprender como vi los reconoce es aprovecharlo. sentencia Una sentencia son todos los caracteres entre signos tales como: punto (.), signo de pregunta (?), y exclamacion (!). Una linea en blanco también finaliza una sentencia. línea El texto entre dos caracteres RETURN forma una linea. Por ello es que es posible tener lineas las cuales son mas anchas que el tamaño de la pantalla. párrafo Un párrafo es una secuencia de lineas las cuales no están por una línea en blanco. De esa manera, el documento ejemplo del ejercicio anterior tiene cuatro párrafos. TABLA 2. Comandos de Movimientos del Cursor

Comando Mueve el Cursor a b Comienzo de la palabra previa w Comienzo de la próxima palabra e final de la corriente/próxima palabra 0 (cero) o ^ comienzo de la línea $ fin de la línea ( comienzo de la corriente/previa sentencia ) comienzo de la próxima sentencia { Comienzo del corriente/previo párrafo } fin del corriente párrafo H linea del tope de pantalla M liena del medio de la pantalla L ultima línea de la pantalla

Borrando Texto

06/12/2008 04:23 p.m.

Manual de vi

5 de 21

http://ar.geocities.com/linuxsanjuan/editores/vi.html

En algunos casos es necesario borrar el texto editado. Para hacer esto, primero mueva el cursor tal que este cubra el primer carácter del grupo que desea borrar, entonces tipee el comando deseado de la tabla siguiente. TABLA 3. Comandos de Borrado Comando Función

x borra solo el carácter actual D borra hasta el final de la linea db borra desde el carácter actual hasta el comienzo de la palabra actual de borra desde el carácter actual hasta el final de la palabra actual dd borra la linea corriente dw borra desde el carácter actual hasta el comienzo de la próxima palabra

Note que la segunda letra del comando especifica la misma porción de texto que hace el comando de movimiento del cursor. De hecho, puede usar el borrado con todos los movimientos del cursor especificados en la tabla 2 (ej. dH borrará desde la linea de tope de la pantalla) para borrar la porción de texto deseada . También , D es equivalente a d$. Ejercicio 5: Ponga el cursor en la palabra manos con las teclas de movimiento del cursor. Mueva el cursor a la letra "s." Presione x para borrarla. Ahora borre la palabra sacude. Vaya al comienzo de la palabra. Aunque presionara x siete veces para borrar la palabra, esto se puede hacer rapidamente tipeando dw (delete word) Finalmente, remueva la linea Justamente no parará de llover Mueva el cursor en cualquier parte de la línea, y tipee dd. La línea desaparece.

Haciendo Correcciones En algunos otros casos solo necesitará cambiar un simple carácter o palabra, más que borrarlos vi tiene funciones de cambio y reemplazo también. Primero moverse a la posición donde el cambio debe comenzar (la linea o palabra deseada). Despues tipee el comando apropiado de la tabla siguiente. Finalmente, ingrese el texto correcto, usualmente concluya con ESC (excepto para r). TABLA 4. Commandos de Corrección/Reemplazo Comando Acción

06/12/2008 04:23 p.m.

Manual de vi

6 de 21

http://ar.geocities.com/linuxsanjuan/editores/vi.html

cw abrev.(Change word)vi muestra el signo $ marcando el fin de la porción de cambio. C sobreescribe hasta el fin de la linea. r Reemplaza un carácter simple con otro. no es necesario presionar ESC. R sobreescribe caracteres comenzando desde la la posicion actual del cursor. s Sustituye uno o más caracteres por un simple caracter. S Sustituye la corriente linea con una nueva.

El comando cambio c trabaja de la misma manera que el comando borrado; puede usar la porción de texto especificada listada en la Tabla 2 (ej. dH borrará desde la linea de topede la pantalla) que actúa como un comando de movimiento de cursor para reemplazar el texto selecconado. C es equivalente a c$. Ejercicio 6: Vamos a corregir algunas palabras. Mueva el cursor hasta la letra "b" de la palabra caberna .Para entrar en modo de reemplazo tipee: r y note que en la linea de modo aparece, "REPLACE 1 CHAR." Luego tipee la letra : v para realizar el cambio. Note que no necesita presionar ESC o RETURN cuando está reemplazando un caracter. El próximo cambio es surcamos a serruchamos muevase hasta el comienzo de la palabra surcamos entonces tipee: cw vi muestra un signo ($) indicando el final del texto que será corregido. Tipee: serruchamos ESC Para finalizar el ejercicio, mueva el cursor a detrás. Cambiará todo el texto desde detrás hasta el final de la linea . Comience la corrección presionando : C Otra vez vi mostrará un signo $ al final de la linea. Haga el cambio tipeando: hasta alcanzar la isla. ESC

Deshaciendo Ocasionalmente en forma accidental se puede insertar un comando o borrar algún texto y desea restaurar lo que habia anteriormente o volver atrás el comando. vi le permite deshacer el ultimo cambio de texto o deshacer el ultimo comando, lo cual se ejecuta tipeando u. Note, no obstante, que vi solo recuperará el último cambio del texto. Ejercicio 7: Muevase a la linea El eco del trueno sacude las nubes, aun el suelo... y borrela tipeando : dd

06/12/2008 04:23 p.m.

Manual de vi

7 de 21

http://ar.geocities.com/linuxsanjuan/editores/vi.html

Traer la linea presionando : u (comando que proviene de "undo") el cual deshace el último cambio. Presione u unas cuantas veces mas, y observe que pasa. Cuando deshace algo, cambia el texto, de esta manera viene el último cambio de texto.

Uniendo Líneas Ocasionalmente desea juntar dos líneas o mas en una sola. El comando J combina la línea actual con la línea siguiente. Esto sería similar a tipear 2J , o sea la línea actual mas una siguiente. También se puede realizar la unión de 4 líneas, la actual mas las tres siguientes, entonces se debe tipear 4J . Ejercicio 8: Vaya hasta la línea en blanco después de en pies y manos. Presione: i e inserteel siguiente texto: Veo todo girar alrededor. RETURN Presione ESC para volver al modo comando. Ahora vaya a la línea en pies y manos. Y presione : J para unir ésta línea con la que había tipeado.

Grabando su Trabajo vi tiene varias maneras para grabar los cambios. Además de guardar su trabajo antes de salir, también es buena idea guardar su trabajo periodicamente. Una falla en la energía electrica o una caída del sistema puede causar que pierda su trabajo. Desde modo comando, tipee : :w RETURN graba su trabajo ("w" es por "write"). Similarmente, para salir de vi use el comando: :q RETURN Ejercicio 9: En modo comando, tipee: :w RETURN para ingresar el comando "write". Despues de un momento, vi le da un reporte al pie de la pantalla, por ejemplo: "ejemplo" 13 lines, 539 characters No se preocupe si el número de líneas y caracteres difiere un bit del suyo. Ahora esta seguro de sair de vi. Desde modo comando, tipee: :q

06/12/2008 04:23 p.m.

Manual de vi

8 de 21

http://ar.geocities.com/linuxsanjuan/editores/vi.html

Se pueden combinar estos dos comandos para grabar (write) y salir ingresando en modo comando y tipeando lo siguiente. :wq RETURN

Una forma más corta y directa para el mencionado comando es "ZZ" (SHIFT ZZ). En algunos casos ud.desea abandonar los cambios hechos desde la última vez que grabó su trabajo (la última vez que usó el comando:w). En este caso, tipee: :q! RETURN

lo cual le asegura que saldrá de vi sin grabar. Este comando debe ser usado con precaución, ya que abandonando vi de esta manera perderá los cambios en forma permanente. El texto tipeado quedara de la siguiente manera : Nos mezclamos para golpear el campo. El agua choca bajo nuestro, demasiado lejos lentamente en pies y mano. Veo todo girar alrededor. Nuestros refugios se oscurecen desagradablemente.El eco del trueno las nubes, aun el suelo retumba cada vez que se sacude. Echamos una mirada hacia atrás, serruchamos un océano creciente hasta alcanzar la isla. Nuestras tiendas deterioradas fueron un pobre refugio esta noche. Cae un rayo destellante sobre la colina, fabricamos una pequeña caverna en la ladera de la montaña. Un refugio seguro, pienso. Nuestro refugio se destrona, pero se levanta hacia delante poniendose seguro.

Una Segunda Sesión Repitiendo un Comando A menudo es necesario trabajar sobre mas de un carácter,palabra o linea. Por ejemplo, suponga que desea borrar tres palabras. En lugar de tipear dw tres veces, puede tipear 3dw, y vi ejecutará el comando tres veces. La gran mayoría de los comandos de vi pueden ser repetidos de esta manera. Tipee un número(este puede ser de mas de iun digito), y entonces tipee el comando. Si desea abandonar el número, presione ESC para cancelarlo.

06/12/2008 04:23 p.m.

Manual de vi

9 de 21

http://ar.geocities.com/linuxsanjuan/editores/vi.html

Ejercicio 1: Inicie vi con el documento ejemplo tipeando: vi ejemplo RETURN Una vez que vi arranca, ponga la linea de modo con: :set showmode RETURN Muevase hasta la e en eco del trueno entonces tipee: 3dw y note que vi borra tres palabras de una sola vez. (Luego presione u para deshacer el borrado.) Puede también repetir el ingreso de un texto. Vaya a una línea en blanco e ingrese : 5iBOOM! ESC (no olvide dejar un espacio entre el signo (!) y ESC). Notara que vi agrega "BOOM!" cinco veces. Finalmente, intente cancelando un número. Vaya a la palabra delante en la última línea y tipee (ignore el beep): 15 ESC 7x

El ESC cancela el número 15, de esta manera vi solo borra la palabra delante en lugar de los 15 caracteres siguientes.

Número de líneas La mayoría de los comandos vi usa numero de líneas, lo cual simplifica contar el número de caracteres RETURN en un archivo. Se puede cortar y copiar texto por número de líneas o saltar a una cierta linea. Los números de linea pueden ser usados cuando recibe mensajes de error durante la compilación de un programa. Frecuentemente los compiladores imprimen el número de línea, de este modo se puede saltar a un determinado número de línea a ver el error.

Ejercicio 2: Para mostrar el número de línea, ingrese el siguiente comando: :set number RETURN Este comando mostrará inmediatamente el número de línea en el margen izquierdo de la pantalla del editor vi. El comando de movimiento G le permite saltar a alguna llinea dentro de un archivo. Primero tipee el número de linea, seguido de G. Si no tipea el numero de linea, vi salta al final del archivo. De esta manera, 1G lo lleva al comienzo, y G lo lleva al final del archivo. Otro comando reporta el numero de linea actual y el estado de su archivo. Cuando tipee CTRL-G, vi mostrará el nombre_archivo, y el numero de linea actual junto con el porcentaje de texto representando todas las lineas sobre la actual.

06/12/2008 04:23 p.m.

Manual de vi

10 de 21

http://ar.geocities.com/linuxsanjuan/editores/vi.html

Ejercicio 3: Desde el modo comando, intente saltar a la linea 1, el final del documento, y a la linea 6: 1G G 6G Despues de tipear cada uno de estos comandos, verá que el cursor salta a la linea deseada. Luego, saque el numero de lineas ingresando el comando : :set nonumber RETURN Finalmente, presione CTRL-G y la linea de modo deberá mostrar algo similar a : "ejemplo" [Modified] line 6 of 13 --46%--

Marcadores Durante una sesion de edicion, estará cansado de tipear movimientos de cursor o tener que recordar numeros de linea. vi le permite setear marcas en cualquier parte de un archivo. Estas marcas permiten mover,copiar y cortar texto muy facilmente. Los marcadores son llamados desde "a" a "z," donde la letra los distingue unos a otros. Cuando sale de vi, los marcadores desaparecen, asi debería setearlos cada vez que arranque vi. Setear los marcadores es facil. Mueva el cursor donde desea colocar la marca, entonces tipee m letter donde letter especifica el nombre del marcador. Letter puede ser alguna letra minuscula desde la "a" a la "z". Desafortunadamente, vi no indica que ha seteado un marcador. Ud. puede setear marcadores en cualquier orden. No tiene para etiquetarlos secuencialmente (a, b, c, etc.).

Ejercicio 4: Setee unas cauntas marcas y vea como trabaja. Mueva el cursor a la palabra Nuestras entonces setee la marca alli. Tipee: mw Ahora vaya a la palabra rayo y setee una marca tipeando: ma Luego vaya a isla y tipee: ml Una vez que ha seteado una marca, puede volver a la linea o carácter exacto rapidamente. Para saltar a la marca tipee `letra (Use el simbolo apostrofe (`)). Para saltar al comienzo de la linea conteniendo el marcador tipee 'letter. (Use el simbolo comilla simple (')).

06/12/2008 04:23 p.m.

Manual de vi

11 de 21

http://ar.geocities.com/linuxsanjuan/editores/vi.html

Ejercicio 5: Vaya a la primera linea del documento, entonces salte entre las marcas tipeando lo siguiente: `w `l `a 'l 'a `w

Por ultimo intente saltar a una marca no definida tipeando: 'c vi hace sonar el beep porque no conoce donde saltar.

Otros Modos de Inserción Ademas del modo insercion, vi emplea otros modos de inserción. Todos ellos le permiten ingresar texto; la única diferencia esta en el ounto de insercion. La Tabla 5 de abajo describe los tres modos mas comunes: append, insert, y open. Otros dos modos de insercion son el modo cambio y el modo de reemplazo. El indicador de modo muestra el modo actual. TABLE 5. Modos de inserción

Comando Modo Punto de Inserción

a append justo despues del carácter actual A Append al final de la linea actual i insert justo antes del carácter actual I Insert al comienzo de la linea actual o open nueva linea debajo de la corriente O Open nueva linea arriba de la corriente

Ejercicio 6: Vaya a la linea Nuestros refugios se oscurecen... y presione A para agregar texto al final de la linea. Entonces tipee: los guiones --ESC Luego vaya a la linea en pies y manos. y abra una linea nueva debajo de esta presionando: o arrancará el modo open, y observe que vi crea una nueva linea para tipear texto:

06/12/2008 04:23 p.m.

Manual de vi

12 de 21

http://ar.geocities.com/linuxsanjuan/editores/vi.html

Hace un paso y cae al suelo. ESC Ejercicio 7: Ahora que ha finalizado los ejercicios de esta seccion ingrese: :wq RETURN para guardar los cambios y salir de vi.

Cortar, Copiar, y Pegar En forma frecuente hace falta cortar o copiar algún texto, y pegarlo en algún otro lado del documento. En primer lugar se copia o corta el texto en un almacenamiento temporal, entonces lo pega en otro lugar. Cortar significa mover texto del documento y almacenarlo, mientras copiar significa poner un duplicado del texto en el almacenamiento. Finalmente pegar es colocar el texto almacenado en el lugar deseado.

Buffers vi usa un buffer para almacenar el texto temporario. Hay nueve buffers numerados que se suman a un buffer de deshacer. El buffer de deshacer contiene el mas reciente borrado. Usualmente el buffer 1 contiene el borrado mas reciente, el buffer 2 el próximo mas reciente, y así sucesivamente. Los borrados despues de 9 desaparecen. Sin embargo, vi también tiene ventiseis bufferes llamados desde (a-z). Estos buffers son usados para almacenar bloques de texto para recuperarlos luego. Las letras de los buffer son independiente de las letras de las marcas, de esta manera el buffer k y la marca k no estan relacionadas. El contenido de un buffer no cambia hasta que se pone un texto diferente dentro de él. A menos que ud. cambie el contenido de un buffer, éste es retenido hasta que salga de vi. Como con los marcadores, vi no graba los buffers cuando se termina la sesión de vi.

Por número de Línea Dos comandos simples permiten cortar y copiar texto ingresando el rango en lineas y la linea destino. El comando m mueve un rango de texto, y el comando t lo transfiere. t es un sinónimo de c (copy). El comando tiene la forma que se muestra mas abajo. :line1mdestline Mueve (corta) la línea número, line1, a la línea que se indica luego en destline :line1,line2mdestline Mueve (corta) lineas entre las líneas line1 y line2, hasta el número de línea, destline :line1tdestline Transfiere (copia) la linea numero, line1, a la línea que se indica en, destline :line1,line2tdestline Transfiere (copia) lineas entre las líneas line1 y line2, en el número de linea, destline

06/12/2008 04:23 p.m.

Manual de vi

13 de 21

http://ar.geocities.com/linuxsanjuan/editores/vi.html

Ejercicio 1: Primero inicie vi como en los temas anteriores, luego intente estos comandos. Vaya a la línea Echamos una mirada and press CTRL-G. Note el número de línea. Entonces vaya a la linea Un refugio seguro y presione CTRL-G, y vea el numero de linea (probablemente 11). Ahora esta listo para copiar ("move") Echamos una mirada a otra linea. Tipee: :3m11<> y presione RETURN para finalizar el comando.

Cortar y Copiar (Delete and Yank) General vi tiene su propia terminologia para "cortar" y "copiar": "delete" and "yank," respectivamente. Note que el comando de borrado es el mismo que ya usó; cada vez que se borra un texto, vi cambia el buffer automatico y pone el borrado previo en el próximo búffer numerado. Cuando borra o copia, el texto deseado entra a un buffer. Si no especifica un buffer nombrado, vi usa el buffer automatico(buffer 1). El comando borrar y copiar toma la siguiente forma: Mueva el cursor al final del texto deseado. Si lo desea, especifique un buffer nombrado tipeando "letter donde letter es una letra desde a hasta z. Si no nombra un buffer, vi usa los buffers automaticos 1-9. Tipee un numero de repeticion, si es necesario. (para copiar 5 palabras o 8 lineas, por ejemplo.) Tipee d para borrar el texto, o tipee y para copiar el texto. Tipee una tecla de movimiento de cursor (b, e, w, etc.---vea Tabla 2) determine la unidad de texto; si en cambio tipea d o y, vi usa como unidad la "linea". La tecla de cursor completa el borrado o copiado y almacena el texto en el buffer deseado.

Usando Marcadores Los marcadores tambien le permiten especificar un rango de texto para cortar o copiar sin tener que contar palabras o líneas. El siguiente procedimiento le muestra como borrar o pegar texto usando marcas. Muea el cursor al final de la selección primera. Tipee la letra m para setear una marca. Muva el cursor al final de la otra selección. Si lo desea, especifique un buffer nombrado tipeando "letra Si no tiene un buffer nombrado, vi usa los buffers automaticos. Tipee d o y para borrar o copiar texto, respectivamente. Usando letter desde la marca, tipee

06/12/2008 04:23 p.m.

Manual de vi

14 de 21

http://ar.geocities.com/linuxsanjuan/editores/vi.html

`letra para borrar o copiar el texto entre la marca y el cursor.Debera tipear 'letra para borrar o copiar el texto por linea.

Paste Pegar texto desde un buffer implica tres pasos: Mueva el cursor a la localizacion que desea pegar. Si esta recuperando texto desde un buffer nombrado, especifique el buffer tipeando "letra. De otra manera vi usa los buffers automaticos. Tipee p para pegar el texto del buffer despues del carácter actual o tipee P para pegar antes del carácter actual. Si el texto del buffer es almacenado por linea, pegara abajo o arriba de la linea actual. Ejercicio 2: Este ejercicio realiza un estandar de copy-y-paste. Este usa buffer automatico y no usa marcadores. Vaya a la primera linea del texto Nos mezclamos..., entonces yankee tres lineas del texto tipeando (el termino "yankee" lo usamos como arrastre) : 3yy Nada parece suceder, pero vi ha puesto las primeras tres lineas dentro del buffer automático. El mensaje "3 lines yanked" aparece al pie de la pantalla. Ahora vaya a la linea Un refugio seguro y pegue las lineas alli. Para ello presione : p Ejercicio 3: En este ejercicio use marcadores para identificar el texto que desea cortar, realice un corte normal. Primero, vaya a Echamos y ponga una marca alli tipeando: mx Entonces vaya a la B en el cuarto "BOOM!". Corte el texto y pongalo en el buffer e tipeando: "ed`x El texto desaparece, pero vi lo ha puesto en el buffer e. Segundo, copie el resto de BOOM! BOOM! en el buffer automatico. Tipeando: dd Tercero, pegue el contenido del buffer automatico : mueva a la segunda instancia de Nos mezclamos... y presione: P ("P" mayuscula) Cuarto y último, vaya a la linea en blanco despues de Un refugio seguro... Pegue el texto desde el buffer e tipeando: "ep Despues de estos dos ejercicios, la pantalla deberia mostrar lo siguiente:

06/12/2008 04:23 p.m.

Manual de vi

15 de 21

http://ar.geocities.com/linuxsanjuan/editores/vi.html

Nos mezclamos para golpear el campo. El agua choca bajo nuestro, demasiado lejos lentamente en pies y mano. Veo todo girar alrededor. Nuestros refugios se oscurecen desagradablemente.El eco del trueno las nubes, aun el suelo retumba cada vez que se sacude. Echamos una mirada hacia atrás, serruchamos un océano creciente hasta alcanzar la isla. BOOM! BOOM! BOOM! Nuestras tiendas deterioradas fueron un pobre refugio esta noche. Cae un rayo destellante sobre la colina, fabricamos una pequeña caverna en la ladera de la montaña. Un refugio seguro, pienso. BOOM! BOOM! Nuestro refugio se destrona, pero se levanta hacia delante poniendose seguro. ~ ~

Buscar y Reemplazar Como los archivos llegan a ser largos, se necesita asistencia para localizar una instancia particular de texto, vi tiene varias caracteristicas de busqueda y busqueda y reemplazo.

Búsqueda Simple vi puede buscar en un archivo completo por un string de texto dado. vi busca hacia delante con la barra (/) o hacia atrás con el signo de interrogacion (?). Ejecute la busqueda tipeando el comando luego el string seguido de RETURN. Para cancelar la busqueda, presione ESC en vez de RETURN. Se puede hacer una nueva busqueda tipeando n (hacia delante) o N (hacia atras). Tambien, caundo vi alcanza el final del texto, continua buscando desde el comienzo. Esta caracteristica es llamada "wrapscan".

Ejercicio 1: Arranque vi como de costumbre e intente una busqueda simple. Tipee: /and y presione n y N unas cuantas veces para ver donde va el cursor.

Caracteres Especiales vi soporta algunos caracteres especiales, los cuales actuan como comodines o exclusiones de busqueda. Estos caracteres especiales y sus usos son resumidos luego en los ejercicios. Note que cccc ssoporta algunos caracteres; esto podria ser g, gefha, o 23CG-4. Los caracteres especiales son : $ . * [ ] ^ \. Cuando se especifica el string de búsqueda, algunas veces desearía buscar por uno de los

06/12/2008 04:23 p.m.

Manual de vi

16 de 21

http://ar.geocities.com/linuxsanjuan/editores/vi.html

caracteres especiales. Para ello, tipee el caracter (\) inmediatamente antes del carácter especial. Por ejemplo, \$5 encuentra "$5.00." Para especificar un backslash simple, tipee \\. La tabla siguiente resume los caracteres especiales. Note que el (slash /) arranca una búsqueda hacia adelante. Puede reemplazarlo con un signo de interrogación (?) para buscar hacia atrás.

Ejercicio 2: Intente algunas de las búsquedas de string de la tabla precedente, entonces intente la siguiente combinacion: / \<s.o palabras comenzando con s, alguna letra, luego o (shook, slow) / \ palabras que comienzan con h y terminan con s con cualquier numero de caracteres entre ellas (heavens, hills) /o.[rtk] palabras conteniendo o, caulquier letra, y r, t, o k (bolt, foot, poor, shook)

Busca y reemplaza vi puede tambien buscar y reemplazar, lo cual significa buscar instancias de un carácter dado y reemplazarlo con un nuevo string. Esta operación de búsqueda y reemplazo puede ser de la siguiente forma : : line1, line2s/ oldstring / newstring Donde se especifica el rango de texto para el comando de busqueda y reemplazo con los números de linea line1 y line2. Si ud. solo da line1 y omite la coma, entonces el comando solo afecta la linea. Si ud. no especifica el numero de linea el comando afecta la linea actual. Este comando de busqueda y reemplazo solo busca la primera ocurrencia de oldstring en la linea. Puede repetir este comando tipeando un ampersand (&). Para repetirlo en una linea diferente o grupo de lineas, tipee: : linenumber& o : line1,line2&

Ejercicio 3: Intente reemplazar la palabra refugios con bovedas vaya a la última línea y presione CTRL-G para ver el número de linea. Luego vaya a la linea Nuestros refugios..., donde realizara la primera busqueda y reemplazo. Tipee: :s/refugios/bovedas y presione RETURN. LA primera palabra "refugios" se cambia a "bovedas" Ahora presione el ampersand (&) para repetir el comando. Nada pasa y vi muestra lo siguiente : Substitute pattern match failed

porque vi busca "refugios" en la linea corriente. En cambio use el numero de linea desde el comienzo de este ejercicio y tipee:

06/12/2008 04:23 p.m.

Manual de vi

17 de 21

http://ar.geocities.com/linuxsanjuan/editores/vi.html

:16 & Presione RETURN y vi reemplaza la ocurrencia de "refugios" en la linea 16.

Banderas Especiales Puede agregar una bandera al comando busqueda y reemplazo; la bandera avisa a vi el reemplazo de cada ocurrencia o preguntara por una confirmación antes de cada reemplazo. Para agregar una bandera, use la siguiente forma: : line1, line2s/ oldstring / newstring / flag Flag es un parametro opcional. Si flag es c entonces vi le mostrara cada instancia de oldstring y espera por una confirmacion; tipee y (para yes) o n (para no) seguido de RETURN. Una bandera g requiere una busqueda y reemplazo global, sin confirmacion.

Ejercicio 4: Ejecute una busqueda y reemplazo con confirmacion. Presione CTRL-G y note cuan largo es el texto (probablemente 17 lines). Entonces ingrese: :1,17s/Nuestro/El/c y presione RETURN. vi le indicara cada ocurrencia de la palabra "Nuestro" y aguardara una respuesta. La primera vez Nuestros refugios se oscurecen..., presione: y RETURN La segunda vez Nuestro refugio se destrona..., presione: n RETURN Presione RETURN una vez mas, y vi actualiza la pantalla. Chequee el mensaje actual con el siguiente, entonces guarde su trabajo y salga de vi para finalizar este ejercicio. :q! RETURN El texto despues de los ultimos cambios quedara de la siguiente manera: Nos mezclamos para golpear el campo. El agua choca bajo nuestro, demasiado lejos lentamente en pies y mano. Veo todo girar alrededor. Els refugios se oscurecen desagradablemente.El eco del trueno las nubes, aun el suelo retumba cada vez que se sacude. Echamos una mirada hacia atrás, serruchamos un océano creciente hasta alcanzar la isla. BOOM! BOOM! BOOM! BOOM! BOOM! Nuestras tiendas deterioradas fueron un pobre refugio esta noche. Cae un rayo destellante sobre la colina, fabricamos una pequeña caverna en la ladera de la montaña.

06/12/2008 04:23 p.m.

Manual de vi

18 de 21

http://ar.geocities.com/linuxsanjuan/editores/vi.html

Un refugio seguro, pienso. El refugio se destrona, pero se levanta hacia delante poniendose seguro. ~ ~

Temas Avanzados Variables vi mantiene varias variables que controlan diferentes aspectos de apariencia. Ya hemos usado algunas de estas (:set number, :set showmode).

Variables numéricas y switch Los dos tipos de variables son (toggle) switch y numericas. Las variables switch cambian de opcion on u off, mientras las variables numericas toman un numero como argumento. Lleva a on una variable switch con: :set variable y puede llevarla a off tipeando: :set novariable Las variables numericas son seteadas con un signo igual (=) y el correspondiente valor. Por ejemplo, para setear tab stops cada seis espacios, debera ingresar :set tabstop=6 TABLA 7. Seteo de Variables Variable Default Descripcion ignorecase noignorecase No hace distincion entre letras mayusculas y minusculas durante las busquedas. number nonumber Muestra numeros de lineas. showmode noshowmode Muestra el modo inserción, cuando esta en blanco esta en modo command wrapscan wrapscan Cuando una busqueda alcanza el fin del archivo este wraps around vuelve al comienzo

06/12/2008 04:23 p.m.

Manual de vi

19 de 21

http://ar.geocities.com/linuxsanjuan/editores/vi.html

y continua la busqueda report report=5 Cuando mas de este numero de lineas son modificadas, borradas, copiadas, o pegadas, vi imprime un mensaje. Esta opcion alerta sobre modificaciones largas. tabstop tabstop=8 Setea tab stops para multiples valores Normalmante 8 trabaja bien. wrapmargin wrapmargin=0 Setea el margen derecho. Cuando se pasa el margen seteado por wrapmargin, vi automaticamente crea una linea nueva.

Variables Usadas Esta seccion contiene una lista de las variables mas usadas para trabajar en vi. Para ver una lista de todas las variables y su seteo, ingrese :set all Ejercicio 1: Ud. ya conoce como cambiar los numero de linea con on y off , y también ha usado la variable showmode. Ahora intente con una variable numerica. Desde el modo comando, tipee: :set wrapmargin=5 Este comando setea el margen derecho del archivo a 5 caracteres. Desafortunadamente, esto no afecta lineas existentes, solamente texto nuevo que ud. ingresa. Mueva el cursor hasta "I saw everything." Entre en modo insercion presionando: i y tipee : Staggering like a drunken bum, each step a wicked dance, ESC Note que la linea da vueltas alrededor del margen de la ventana, pero vi automaticamente crea una nueva linea para el texto mas alla del margen derecho.

Teclas Especiales y CTRL-V Antes de proceder con el resto de este capitulo, usted necesita aprender sobre los caracteres de control. Los caracteres de control son invisibles los cuales las conputadoras usan para manejar los protocolos de omunicacion. La tecla RETURN es el carácter de control (CTRL-M), com el de la tecla ESC es (CTRL-[ ). Las teclas de funcion son usualmente una secuencia de control y caracteres regulares. vi permite poner un carácter de control en el texto precediendolo con CTRL-V (el cual es tambien un carácter de control).

06/12/2008 04:23 p.m.

Manual de vi

20 de 21

http://ar.geocities.com/linuxsanjuan/editores/vi.html

Ejercicio 2: Vaya a la primera linea del archivo y presione: O ("O," mayuscula no cero) para crear una nueva linea. Luego tipee: CTRL-V RETURN CTRL-V CTRL-T Note que cuando presiona el primer CTRL-V, vi muestra un carácter (^) , el cual indica que el proximo sera un caractrer de control. Luego tipee algunos caracteres de control mas: CTRL-V CTRL-V CTRL-V F1 CTRL-V ESC Observe que se ha insertado un CTRL-V, un ESC, y ls secuencia F1 en el texto. No se preocupe si la secuencia F1 muestra como basura. Ahora borre los caracteres de control y las tres primeras lineas de texto, tipeando: ESC 4dd

Mapeando Teclas Puede mapear una simple tecla en varios caracteres con el comando map. Esto le permite asignar funciones a la tecla de funcion. Este comando es de la forma: :map keystroke result donde keystroke es un carácter simple o tecla de funcion, y result es la secuencia de carácter que deberia ser disparada. El mapeo de teclas permanece en efecto hasta que sale de vi.

Ejercicio 3: Este ejercicio mapea la tecla de funcion F1. Vaya al comienzo del archivo desde el modo comando tipee (_ significa un espacio) :map_CTRL-V F1_1G

Antes de presionar RETURN asegurese de que ha comprendido lo que esta haciendo: :map da a vi el comando "map". F1 es el keystroke, pero esta es precedida por el carácter de control, CTRL-V. Finalmente, 1G es el result, el cual le indica al comando de vi que se vaya a la primera linea del archivo. Ahora pruebe su mapeo. Vaya a una linea diferente y presione F1; el cursor deberia saltar a la primera linea del archivo. Intentelo nuevamente.

Macros Puede ejecutar una macro de vi, lo cual significa que vi lee el contenido de un buffer nombrado (a-z) y los ejecuta como si fueran comandos. Porque una macro es texto tratado como comandos de vi, una macro g y el buffer g son el mismo buffer. Para setear una macro, borre o copie una macro existente en un buffer. Ejecute la macro

06/12/2008 04:23 p.m.

Manual de vi

21 de 21

http://ar.geocities.com/linuxsanjuan/editores/vi.html

tipeando @char.

Ejercicio 4: Cree una macro que busque lineas que comiencen con "BOO" y las borre. Primero vaya al final del documento, entonces entre en modo open presionando: o Ahora esta listo para tipear el comando para la macro. Tipee (sin espacios): /^BOO CTRL-V RETURN dd ESC Borre (corte) el texto de la macro en el buffer z como un texto ordinario: tipee: "zdd Ahora esta listo para ejecutar la macro; tipee: @z y la primera linea de "BOO" desaparece. Ejecute la macro de nuevo con @z.

Grabando una configuracion de vi Ud. ha aprendido a setear la barra de estado y el margen derecho tipeando: :set showmode :set wrapmargin=5 Estas dos caracteristicas son muy utiles, pero seguramente no quiere tipearlas cada vez que inicie vi. Afortunadamente, puede guardar estas configuraciones en un archivo llamado .exrc. Cada vez que arranca vi, este lee .exrc y ejecuta todos los comandos dentro de el. .exrc puede contener comandos :map y :set . Cada uno debe estar en una linea separada, pero mas importante es destacar que se deben omitir los dos puntos (:) . Con un poco de trabajo, se puede mapear las teclas de función dentro de sus propias funciones: movimientos del cursor , cortar y pegar, y grabar y salir. Ejercicio 6: En este ejercicio crearemos un archivo .exrc basico. Entre en modo insercion y setee dos variables : i set showmode RETURN set wrapmargin=5 ESC

Grabe este archivo. Ahora, cuantas veces arranque vi, invocara estos dos comandos . Autor : Carlos Lizarraga. Traducido por: Daniel Ibarra.

06/12/2008 04:23 p.m.

Related Documents

Manual De Vi Parte 2
May 2020 12
Manual De Vi
May 2020 8
Vi Manual
November 2019 7
Manual Maya 3d Parte 2
April 2020 7
Manual Ford Ka - Parte 2
October 2019 16