Post on 15-Jun-2015
description
ElEl editor VIeditor VIEl El editor VIeditor VI
Linux
INVOCACIÓN
El editor se invoca mediante el comando viSi se lo invoca enviando como parámetero un archivo existente, p ,se abrirá el editor junto con el archivo abierto listo para editar.Si se lo invoca enviando como parámetero un archivo inexistente, p ,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.
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 ComandoPermite 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 Al arrancar el Editor, siempre el sistema está en modo comando.
PRINCIPALES COMANDOS
Grabación y Salida del EditorMovimientoInserción de TextoModificación de TextoEliminar TextoCopiar y Mover TextoBúsqueda y ReemplazoOtros ComandosRepetición de comandosComandos EX
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: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:w xxxxxx Graba el contenido del buffer en el archivo xxxxxx:wq Graba al archivo el contenido del buffer y sale del editor
MOVIMIENTO
De caracter en caracterSi la terminal se encuentra bien configurada, se pueden utilizar las flechas g , pdel teclado. En forma alternativa, también se pueden utilizar:
l o Barra espaciadora un caracter a la derechah un caracter a la izquierdak un caracter hacia arribaj un caracter hacia abajoj un caracter hacia abajo
De palabra en palabraw (word) Una palabra hacia adelante( ) pb (before) Una palabra hacia atrás
MOVIMIENTO (CONT.)
Dentro de una línea^ Nos ubicamos al inicio de la línea$ N bi l fi l d l lí$ Nos ubicamos al final de la líneaReturn Nos ubicamos al inicio de la siguiente línea
Dentro de una pantallaH Nos ubicamos en la parte superior - izquierda de la pantallaL Nos ubicamos en la parte inferior - izquierda de la pantallaMNos ubicamos en la parte central de la pantallaos ub ca os e a pa te ce t a de a pa ta a
Avance / Retroceso de PáginaCtrl-F Avanza una pantallaCtrl B Retrocede una pantallaCtrl-B Retrocede una pantallaCtrl-D Avanza media pantallaCtrl-U Retrocede media pantalla
INSERCIÓN DE TEXTO
Todos estos comandos pasan el editor a modo ediciónAgregar Textog g
a (append) Inserta el texto a la derecha del cursorA Inserta el texto a la derecha del último caracter de la línea actual
Insertar Textoi (insert) Inserta el texto a la izquierda del cursorI Inserta el texto al principio de la línea actualI Inserta el texto al principio de la línea actual
Insertar una líneao (open) Abre una línea debajo de la línea actualo (open) Abre una línea debajo de la línea actualO Abre una línea arriba de la línea actual
MODIFICACIÓN DE TEXTO
Caracteress Sustituye el caracter actual por uno o más caracteres.r Sustituye el caracter actual por otro caracter, y vuelvo a modo comando
Palabrascw Sustituye la palabra (o parte de la palabra) actual
Líneascc Sustituye la línea actual completacc Sustituye la línea actual completaC Sustituye la línea desde el caracter actualJ Une dos líneas (Borra el caracter nueva línea de la línea actual)
ELIMINAR TEXTO
Caracteresx Borra el caracter donde se encuentra el cursorX Borra el caracter a la izquierda donde se encuentra el cursor
Palabrasdw Borra la palabra (o parte de la palabra) actual dw Borra la palabra (o parte de la palabra) actual
Líneasdd Elimina la línea actual (y el espacio que ocupa) completaD Elimina todo lo que está a la derecha del cursor.d0 Elimina todo lo que está a la izquierda del cursor.
ArchivoArchivodG Borra desde la línea actual hasta el final del archivod1G Borra desde el principio del archivo hasta la línea actual
COPIAR Y MOVER TEXTO
Copiar y PegarColocarse en la primera línea a copiarColocarse 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 pColocarse en la línea donde se desea pegar seguido de p(paste)
Cortar y PegarCortar y PegarColocarse en la primera línea a cortarEscribir el número de líneas a copiar seguido de dd (delete)Escribir el número de líneas a copiar seguido de dd (delete)Colocarse en la línea donde se desea pegar seguido de p
COPIAR Y MOVER TEXTO (CONT.)
Util para insertar repetidamente un grupo de líneas en varios lugares del archivog¿Cómo utilizarlos?
Colocarse en la primera línea a copiarEscribir 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 Escribir el número de líneas a cortar o copiar Teclear yy o ddColocarse en la línea donde se desea pegar Teclear comillas dobles seguido de la letra del buffer que se desea pegar seguido de p
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 actualpn 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 ic Búsquedas Case Sensitive:set noic Búsquedas No Case Sensitive
ConsideracionesLos caracteres (/& ! . ^ * $ \ ?) son especiales por lo que para ser utlizados en búsquedas deberán ser precedidos por \ (barra invertida)
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\> B l fi l d l b\> Busca al final de una palabra
Metacaracteres. Busca cualquier caracter (1 sola ocurrencia). 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
REEMPLAZAR TEXTO
El formato para comoandos de reemplazo es el siguiente: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.
OTROS COMANDOS
Deshacer (Undo)u Deshace el último comandoU D h t d l bi li d l lí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 archivo Inserta 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 :!comandoshell Ejecuta un comando del shell y vuelve al
editor!!comandoshell Ejecuta un comando del shell y se incluya su
salida en el archivosalida en el archivo:sh Ejecuta un shell. Al salir del shell (Ctrl-D)
vuelve al editor.
REPETICIÓN DE COMANDOS
Repetición de comandosRepite el último comando. Repite el último comando
Los comandos se pueden preceder por un número que indica cuántas veces se debe repetir el comando. Por ejemplo:cuántas veces se debe repetir el comando. Por ejemplo:
10x Borra 10 caracteres5dd Borra 5 líneas10. Repite 10 veces el ultimo comando2Ctrl-FAvanza 2 páginas
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 Destinolinea 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
EL ENTORNO DE TRABAJO
El vi permite modificar el entorno de trabajo mediante opcionesPara activar una opciónp
:set opcion
Para desactivar una opción:set noopcion
Algunas opcionesautoindent Hace que la línea siguiente conserver la indentación de
la anteriornumber Numera las líneas (:se nu es en definitiva un apócope )number Numera las líneas (:se nu es en definitiva un apócope )showmode Indica visualmente el modo de trabajo activo
EL ENTORNO DE TRABAJO (CONT.)
AbreviaturasSe pueden establecer abreviaturas para cadenas largas. Al escribir la abreviatura el editor reemplazará la misma por el texto correspondienteabreviatura el editor reemplazará la misma por el texto correspondiente:ab abreviatura cadena larga (Ej: :ab uc Universidad del Cema):una abreviatura Elimina la abreviatura
MacrosMacrosSe 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):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 abre iat ras macros) mediante la creación de n archi o (opciones, abreviaturas y macros) mediante la creación de un archivo llamado .exrc en el Home Directory del usuario.
EJERCICIOS
Experimente los comandos W (mayúscula) y B (M ú l ) dif i t b(Mayúscula), que diferencias encuentra con w y b.Investigue las siguientes opciones de Entorno:
showmatchall
Ingrese el comando :se all ¿Qué ocurre?g ¿Q