Home

Vim: Referencia rápida

image

Contents

1. 36 Cap tulo 2 Las nociones fundamentales de Vim de esta manera y si por ejemplo en el modo normal tecleamos 4 el cur sor se trasladar a la l nea final de la pantalla y se escribir autom ticamente el rango 3 0 Al indicar rangos la primera l nea del documento se numera como l nea 1 Por otra parte cuando el comando provoca que en nuestro buffer se inserte texto la l nea indicada representa la l nea bajo la cual se insertar el texto Por ello en estos comandos se admite como rango la l nea 0 cuando se quiere indicar que el texto debe insertarse exactamente al principio del documento 0Qbs rvese que si escribimos 4 el rango predispuesto es 3 eso es porque 4 significa que queremos trabajar sobre cuatro l neas contando la actual por lo tanto la l nea de destino ser 4 1 Cap tulo 3 Comandos para el movimiento del cursor El hecho de que una de las formas de indicar el mbito de los comandos sea una operaci n de movimiento del cursor hace que los comandos dirigidos a esta finalidad adquieran una importancia excepcional Mucho mayor que en cualquier otro editor de texto Pero adem s es que Vim est dotado del conjunto de comandos para movi miento del cursor m s completo que existe o que yo conozca Hasta el punto de que con Vim podemos navegar entre las distintas partes de un documento de modo muy parecido a como lo har amos con un navegador de Internet e
2. y al final en ficheros IXT X el car cter y en ficheros de tipo make el car cter HP 2 El texto vim es el que hace a Vim reconocer a esa l nea como con teniendo un grupo de variables de fichero Si la l nea no empieza con ese texto debe haber un espacio en blanco antes de l Cap tulo 12 Personalizaci n de Vim 3 El texto encerrado entre los dos ser interpretado como un coman do set Podemos incluir varios comandos de este tipo separados por espacios en blanco Por ejemplo en el fichero fuente de este documento que es un documento I4TRX la primera l nea es la siguiente h vim tw 75 ts 3 sw 3 ai lo que significa que se establece el ancho de linea a 75 caracteres el tabulador a tres caracteres y los niveles de sangrado a 3 caracteres al tiempo que se activa la autoindentaci n 12 3 Macros de teclado El comando para asignar a una tecla concreta una secuencia de comandos es map En un fichero de configuraci n hay que usarlo sin los dos puntos iniciales Por ejemplo el siguiente comando hace que al pulsar la tecla FS la palabra sobre la que se encuentre el cursor sea rodeada de llaves map lt F5 gt gewi lt Esc gt ea lt Esc gt Analic mosla con detenimiento 1 El primer elemento es el comando map propiamente dicho 2 A continuaci n viene la tecla a la que se asignar la macro Al tratarse de una tecla de funci n se escribe entre
3. fin de linea tiene un comportamiento especial porque el efecto de su ejecuci n es el de extender la selecci n en todas las l neas hasta su extremo incluso aunque la l nea en la que est el cursor sea m s corta y la selecci n se mantendr hasta el final de todas las l neas hasta que realicemos alg n movimiento horizontal del cursor a derecha o izquierda en este momento el bloque de texto volver a ajustarse con respecto a la anchura de la l nea en la que se puls Cuando vamos seleccionando un extremo de la selecci n se corresponde con el lugar donde estaba el cursor cuando se inici el modo visual y el otro extremo DA Cap tulo 2 Las nociones fundamentales de Vim se corresponde con el lugar en el que est ahora el cursor Si en alg n momento queremos extender la selecci n por el extremo opuesto a aquel en donde ahora est el cursor el comando o intercambiar los dos extremos es decir el cursor pasar a situarse en el lugar en donde se inici la selecci n dejando el inicio de la misma en el punto donde estaba el cursor al ejecutar el comando Si la selecci n es por bloques CTRL V junto con el comando o se habilita el comando 0 El primero funciona como se acaba de explicar lo que en un re cuadro significa llevar el cursor al v rtice opuesto a aquel en el que est el segundo lleva el cursor al v rtice complementario de la selecci n Es decir si representa mos el texto sele
4. o e e 5 2 1 Saltos de tabulador blandos y duros o 5 2 2 Variables de Vim que controlan el tabulador 5 2 3 Elcomando retab o ee ee Sangrado de l neas o o e e e 5 3 1 Comandos para controlar el sangrado 5 3 2 M todos de Sangrado o o e 6 Otros cambios 6 1 6 2 6 3 6 4 6 5 6 6 Sustituci n simple de texto comando r o o o oo oo El modo de reemplazo o e Cambiar may sculas min sculas o SUMATE Y restan dd o E E ds Se eee E Encriptar el TICOStO 5 e amp A OOS ed ta Deshacer rehacer y repetir cambios 2004 7 Comandos para manipulaci n del texto en los modos visual y de inserci n 7 1 Modificaci n del texto desde el modo visual 7 1 1 Insertar el mismo texto en varias l neas 7 1 2 Otros cambios en el modo visual 7 1 3 El modo de selecci n 42 43 43 43 44 45 45 46 46 46 46 47 48 48 48 48 49 50 52 a2 52 53 53 54 54 55 56 56 56 57 ndice general 7 2 Comandos en el modo de Inserci n o 7 2 1 Ejecutar comandos del modo normal desde el modo de inserci n 7 2 2 Movimientos del cursor en el modo de inserci n 7 2 3 Comandos especiales para la inserci
5. unhide 4 no abrir m s de cuatro ventanas Asimismo el comando bal1l abre una ventana distinta para cada uno de los buffers de la lista de buffers Asimismo el comando CTRL W CTRL I crea una ventana en la que se con tiene el mismo buffer que en la ventana actual y en la nueva ventana realiza una b squeda de la palabra bajo el cursor lo que es un modo c modo de realizar una b squeda sin perder de vista el punto en el que nos encontr bamos 9 2 Circular entre las ventanas y cambiarlas de posici n Para cambiar el cursor de una ventana a otra hay varios procedimientos El m s b sico es pulsar CTRL W w 0 CTRL W CTRL W en modo normal La nica diferencia entre ambos comandos es que en el primero hay que pulsar con cierta ra pidez la segunda w y en el segundo podemos dejar pasar el tiempo que queramos entre los dos golpes de teclado de que consta el comando El inconveniente de este comando es que circula por las ventanas en un orden prefijado Para ir directamente a una ventana concreta hay que usar uno de los siguientes comandos CTRL W h Va a la ventana que est a la izquierda de la actual CTRL W j Va a la ventana que est bajo la ventana actual CTRL W k Va a la ventana que est sobre la ventana actual CTRL W 1 Va a la ventana que est a la derecha de la ventana actual CTRL W t Va a la primera ventana CTRL W b Va a la ltima ventana Se ver que las primeras cuatro combinaciones se correspon
6. 1 es la m s a la derecha y por ello mueve en tal situaci n La j dicen los dise a dores de Vim parece una flecha apuntando hacia abajo y esa es la direcci n en la que mueve el cursor y la k es la nica tecla que queda por lo que se le asigna la nica direcci n que no hemos asignado aun Los espa oles estamos acostumbrados a que el nombre de las teclas no nos diga gran cosa porque casi siempre se elige en ingl s Pero los angloparlantes no est n acostumbrados y adem s para ellos es casi una aberraci n que la tecla 1 inicial de left izquierda mueva precisamente a la derecha Por eso es por lo que en todos los manuales de Vim se explica con tanto detalle la raz n de haber escogido estas teclas Por otra parte todos estos comandos admiten argumento num rico salvo el de ir al principio de l nea El argumento num rico se traduce en el n mero de movimientos que se har n y as 3k mueve el cursor tres l neas hacia arriba igual efecto que el que obtendremos pulsando 3 y luego la flecha arriba El argumento num rico en el caso del movimiento hasta el final de l nea fun ciona de manera especial porque no tiene sentido ir m s de una vez al final de la l nea cuando hemos ido una vez no tiene sentido volver a ir all Por eso en este caso el argumento num rico se interpreta como n mero de l neas hacia abajo y as 3 desplazar el cursor hasta el final de la tercera l nea contando desde
7. to del cursor podemos formatear TODO nuestro documento por grande que sea Por ejemplo estando en modo normal la secuencia de teclado gggqG tendr el siguiente efecto gg Llevar el cursor al principio del documento gq Activar el comando de reajustar los saltos de l nea a G Llevar el cursor al final del documento reajustando los saltos de l nea Cinco pulsaciones de teclado han bastado para reajustar los saltos de l nea de todo nuestro documento M s adelante se hablar de los comandos de movimiento del cursor Ahora nos referiremos al resto de los procedimientos para indicar un mbito de actuaci n 2 3 1 Objetos de texto Vim reconoce ciertos objetos de texto est ndar palabras frases p rrafos y blo ques Para ello lo que hace es usar delimitadores es decir de todos los caracteres posibles en un texto Vim sabe que por ejemplo una palabra es una porci n de tex to compuesta por letras encerrada entre caracteres que no son letras las no letras act an como delimitadores de las palabras Un p rrafo se considera que est de limitado por una l nea en blanco un bloque es el texto encerrado entre llaves o par ntesis etc Para cada objeto se usa una letra identificativa del mismo As w Para palabras es decir letras delimitadas por no letras w words s Para frases es decir palabras delimitadas por puntos s sentences p Para p rrafos l neas con texto delimitadas por l
8. Par ntesis que cierra el bloque actual de par ntesis Inicio de la marca de comentario estilo C Final de la marca de comentario estilo C Emparejamiento de delimitadores v ase m s adelante 3 1 3 Movimientos por y entre l neas Para el movimiento por y entre l neas Vim cuenta con un rico conjunto de instrucciones Ya se vio a prop sito de los movimientos simples del cursor que los comandos 0 y se corresponden respectivamente con principio de l nea y final de l nea Adem s de estos comandos se dispone de los comandos y de un grupo de comandos que empiezan por la g g0 g g gk gj El primero de ellos mover el cursor al primer car cter de la l nea que no sea un espacio en blanco o un tabulador El segundo hace lo mismo pero act a sobre la l nea superior al tiempo que act a sobre la l nea inferior Los restantes comandos act an sobre la visualizaci n en pantalla de las l neas que son demasiado largas para caber en ella En estos casos dependiendo del valor de la opci n wrap puede ocurrir que s lo veamos una parte de la l nea ocult ndose a derecha o izquierda el resto o que la l nea se parta en el extremo derecho de la pantalla haciendo que nosotros veamos dos l neas donde en realidad s lo hay na Sea como fuere estos comandos act an no sobre la l nea real sino sobre la l nea que se ve en pantalla y equi
9. R Permite renombrar el fichero sobre el que est el cursor D Borra el fichero sobre el que est el cursor 8 3 2 Buscar un fichero El comando gf ejecutado cuando el cursor est sobre el nombre de un fichero en la ventana de directorio o en cualquier otra abrir ese fichero siempre y cuando Vim pueda encontrarlo para lo cual se requiere que conste la ruta completa o al menos que el fichero se encuentre dentro del path reconocido por Vim La variable path de Vim es similar a la de la shell y de hecho se copia de ella una lista de directorios en los que buscar ficheros Podemos establecerla o cambiarla mediante el comando set path Si queremos abrir un fichero que se encuentra en alguno de los directorios indicados en la variable path podemos usar el comando find en lugar del comando edit Ambos funcionan igual salvo en que el primero s lo necesita recibir el nombre del fichero y no su ruta de acceso 8 4 Editar simult neamente varios ficheros En el momento de llamar a Vim podemos facilitarle como argumento no s lo un nombre de fichero sino varios nombres separados por un espacio en blanco o mediante un patr n Por ejemplo la orden vim txt abrir todos los ficheros de extensi n txt 4Eso es lo que dice la ayuda de Vim en realidad yo creo que este comando lo que hace es ir cambiando el criterio de ordenaci n entre nombre tama o y fecha ar Cap tulo 8 Trabajo
10. You may make a collection consisting of the Document and other documents released under this License and replace the individual copies of this License in the various docu ments with a single copy that is included in the collection provided that you follow the rules of this License for verbatim copying of each of the documents in all other respects You may extract a single document from such a collection and distribute it individually under this License provided you insert a copy of this License into the extracted document and follow this License in all other respects regarding verbatim copying of that document 7 AGGREGATION WITH INDEPENDENT WORKS A compilation of the Document or its derivatives with other separate and independent documents or works in or on a volume of a storage or distribution medium is called an ggregate if the copyright resulting from the compilation is not used to limit the legal rights of the compilation s users beyond what the individual works permit When the Do cument is included in an aggregate this License does not apply to the other works in the aggregate which are not themselves derivative works of the Document If the Cover Text requirement of section 3 is applicable to these copies of the Docu ment then if the Document is less than one half of the entire aggregate the Document s Cover Texts may be placed on covers that bracket the Document within the aggregate or the electronic equivalent of cov
11. da a n no hab amos asignado nombre al buffer podemos intentar la recuperaci n mediante vim r gt En este caso es adem s imprescindible hacer esa llamada desde el mismo di rectorio en el que se hab a iniciado Vim antes de la ca da del sistema Eso es debido a que normalmente el fichero de intercambio se genera en el mismo directorio que el fichero que se edita pero cuando el buffer no se ha asociado a ning n fichero se utiliza el directorio desde el que Vim se inici 11 1 2 Otras cuestiones relacionadas con los ficheros swap La orden vim r no seguida del nombre de ning n fichero hace que Vim busque los ficheros de intercambio que pueda haber en el directorio actual y en algunos directorios donde por defecto se colocan este tipo de ficheros y nos informe de los que ha encontrado Si queremos recuperar un fichero y conocemos el nombre de su fichero swap podemos indicarlo directamente mediante vim r NombreSwap T n gase en cuenta que el nombre del fichero swap empezar siempre por un punto por tratarse de ficheros ocultos Si intentamos editar de modo normal un fichero del que existe un fichero swap Vim nos advertir de la circunstancia para evitar que accidentalmente destruyamos el fichero swap Tras la advertencia el mandato recover actuar como si hubi ramos llamado a Vim con la opci n de recuperaci n El comando preserve hace que el buffer actual se escriba tal y como
12. fh buscar la pr xima h Si va acompa ado de un argumento num rico se har la operaci n varias veces de modo que 3fh buscar la tercera h Si queremos buscar hacia detr s debemos usar F en lugar de f Los comandos t y T to son muy similares a f y F con la salvedad de que mientras f coloca el cursor exactamente sobre el car cter buscado t lo deja en el car cter inmediatamente anterior En uno y otro caso es decir hayamos usado f F t O T una vez que se ha localizado una aparici n del car cter buscado con los comandos y podemos buscar la pr xima aparici n del mismo car cter en la l nea actual busca hacia delante y busca hacia detr s 3 2 Comandos que pueden producir un movimiento del cursor En este segundo grupo de comandos incluyo aquellos comandos cuya finalidad principal no es mover el cursor aunque pueden provocar ese efecto Como a veces la distinci n con los anteriores es cuesti n de matiz y todo depende de la finalidad con la que el comando sea ejecutado en el grupo anterior he incluido a los coman dos que SOLO sirven para mover el cursor y aqu a los que sirven para alguna otra cosa y adem s provocan o pueden provocar un movimiento del cursor 3 2 1 Scroll de la pantalla Cuando un documento es demasiado grande para caber en una sola pantalla en sta s lo se muestra una parte del documento Se suele llamar
13. lo distinguir entre may sculas y min s culas en el supuesto de que en la cadena de b squeda se hayan utilizado letras may sculas Tambi n es posible usar los caracteres Ac y AC en una cadena de b squeda concreta para conseguir que con independencia del va lor general de la opci n ignorecase dicha cadena sea sensible a la distinci n FAC o no lo sea Ac B squeda por palabras completas No hay en Vim ninguna funci n o variable que permita buscar directamente por palabras completas Pero para ello po demos usar la caracter stica de las expresiones regulares Si lt es el indi cador de en principio de palabra y gt es el de final de palabra encerran do el texto buscado entre ambos indicadores la b squeda ser por palabras completas Buscar la palabra bajo el cursor Si lo que deseamos es simplemente localizar la pr xima aparici n de la palabra que est bajo el cursor los comandos y tt la buscar n autom ticamente para nosotros hacia delante o hacia atr s tt Adem s la b squeda ser directamente por palabras Iluminaci n de resultados de la b squeda La iluminaci n de resultados consis te en que cuando se realiza una b squeda todas las apariciones en el buffer del texto buscado se resalten con un color distinto y se mantengan resalta das hasta que se realice otra b squeda Ello se consigue mediante la opci n hlsearch Para desactivar esta utili
14. los m s normales son gvim y kvim Esta versi n funciona exactamente igual que el Vim est ndar pero dis pone de algunas posibilidades a adidas y sobre todo en ella se pueden hacer las cosas al modo de las aplicaciones gr ficas es decir a golpe de rat n y pulsando botones o seleccionando opciones de un men Posiblemente a muchos usuarios eso les parezca m s sencillo Sin embargo si aprendemos as en realidad nunca sabremos usar el verdadero Vim Por ello en esta gu a se hablar de Vim propiamente dicho ya que el manejo de Vim mediante el teclado es igual en todas sus versiones 1 3 Empezar y terminar la ejecuci n de Vim El formato del comando vim es el normal en un sistema Unix vim opciones ficheros 3No obstante t ngase en cuenta que esta gu a se refiere a Vim y no a Vi Trat ndose adem s de un resumen ni siquiera se hace una advertencia respecto de los comandos de Vim que no son compatibles con Vi Para ensayar los aspectos mencionados en esta gu a hace falta por lo tanto haber arrancado Vim en el modo no compatible con Vi Para asegurarnos de que estamos en ese modo podemos usar el comando set nocompatible Sobre c mo ejecutar este comando v ase m s adelante en la secci n 2 2 3 p gina 19 Cap tulo 1 Ideas b sicas sobre Vim Donde vim es el nombre del comando ya hemos visto que podemos llamar a Vim con otros nombres opciones se refiere a cualquiera de las admitidas
15. n previa se le denomina marca Mediante el comando dos acentos graves podemos regresar a la posici n anterior al salto Usando el mismo comando por segunda vez volveremos a la posici n a la que saltamos Los comandos que generan marcas de este tipo son todos aquellos que son capaces de mover el cursor a una l nea distinta de la actual lo que incluye los co mandos de b squeda n N pero no la b squeda por caracteres f F t T o el movimiento por palabras w e b ge ni los comandos j O k Para ver una lista de las marcas que nuestros saltos han ido generando hay que usar el comando jumps 3 3 2 Marcas manuales Tambi n podemos realizar nuestras propias marcas en el documento El co mando m seguido de una letra generar una marca cuya denominaci n es la de la letra pulsada a continuaci n Por lo tanto ma genera la marca llamada a en el lugar del cursor Como para estas marcas s lo se admiten letras del alfabeto ingl s no podemos generar m s que 26 marcas de este tipo Bueno en realidad podemos generar 52 26 en min sculas y 26 en may sculas puesto que Vim diferencia entre min sculas y may sculas Pero t ngase en cuenta que las marcas a las que se asocien letras may sculas ser n consideradas marcas globales lo que quiere decir que si hay abierto m s de un fichero cada buffer puede tener 26 marcas asoci
16. n de texto 7 2 3 1 Los comandos generales de inserci n 7 2 3 2 Insertar caracteres especiales 7 2 3 3 Comandos para el sangrado 7 2 4 Hacer correcciones en el modo inserci n 7 2 5 Autocompletado e 7 2 6 Abrevyiaturas ts wae bh Dee eA ey a II Ficheros ventanas y visualizaci n 8 10 Trabajo con ficheros 8 1 Cuestiones generales sobre ficheros o o 8 1 1 Buffers y ficheros o o e 8 1 2 Abandonar un fichero que ha sufrido modificaciones 8 2 Abrir y guardar ficheros o ee ee 82 1 El comando edit soc co Gog eR ee e a 8 2 2 Grabar un fichero o sus cambios en disco 8 2 3 Copias de seguridad o 8 3 C mo localizar los ficheros o e 8 3 1 El explorador de ficheros de ViM 8 3 2 Buscarunfichero 2 o e 8 4 Editar simult neamente varios ficheros o 8 5 La dista de buffers co BG AS eA ee OA wa ee 8 6 Otras operaciones con ficheros o o Ventanas 9 T Crear YE tADAS ai a A o al Ye Oe A 9 1 1 Comandos expresos de creaci n de ventanas 9 1 2 Creaci n de ventanas como consecuencia adicional de ciertos co mandos Ts 2 2 er a BA ee ond amp 9 2 Circular entre las ventanas y cambiarlas de po
17. neas totalmente en blanco p paragraph Cap tulo 2 Las nociones fundamentales de Vim b Para par ntesis texto encerrado entre par ntesis b blocks B Para llaves Texto encerrado entre llaves A cada objeto adem s nos podemos referir incluyendo los delimitadores o excluy ndolos En el primer caso usaremos una a antes del objeto y as aw significa una palabra desde su principio hasta el car cter inmediatamente anterior a la pr xima palabra Para indicar solo el objeto excluidos los delimitadores se usa 66599 la i y as iw significa una palabra pero solo ella sin los espacios en blanco 66 99 66599 que la rodeen La letra a es el art culo indefinido ingl s y la letra 1 es la inicial de inner por lo tanto ap se traduce por un p rrafo ip por dentro de un p rrafo o el contenido de un p rrafo Ahora bien lo que acabo de explicar no es exactamente as salvo en el caso de los par ntesis y las llaves Ah est claro que la diferencia entre ab e ib est en incluir o no a los delimitadores En los dem s casos a incluye s lo a algunos delimitadores a En las palabras s lo se incluyen los espacios en blanco posteriores a la pala bra pero no otros delimitadores como pueden ser los signos de puntuaci n En los p rrafos y frases se incluyen todos los delimitadores posteriores pero no los anteriores 6699 66599 Ten
18. scroll a la ES Cap tulo 3 Comandos para el movimiento del cursor operaci n por la que la pantalla se desplaza sobre el documento Mucha gente se l a con la direcci n en que se hace un scroll Para tener las ideas claras lo mejor es que imaginemos al documento como una larga ristra de l neas y a la pantalla como una ventana que nos muestra cierto n mero de l neas El scroll vertical es hacia abajo cuando movemos la pantalla hacia abajo pero en ese caso obtenemos el mismo efecto que si dej ramos la pantalla fija y movi ramos el documento hacia arriba Esta es la causa de que tanta gente confunda el scroll hacia abajo y hacia arriba Las dos operaciones b sicas de scroll o desplazamiento de la pantalla se hacen con las teclas RePag y AvPag que equivalen a los mandatos CTRL U y CTRL D v ase la secci n 3 1 1 p gina 29 Adem s de esos comandos Vim dispone de dos comandos para hacer scroll l nea a l nea se trata de C Y y C E que hacen scroll hacia detr s y hacia delante respectivamente Usando estos comandos se ve por qu he incluido al scroll en este apartado porque la finalidad principal del scroll no es mover el cursor sino ver una o varias l neas que no est n visibles y s lo en el caso de que para mostrar dichas l neas haya que ocultar aquella en la que esta el cursor este cambia de posici n porque en Vim el cursor debe estar siempre a la vista Pero el efecto del movimiento del cursor es colateral 3 2 2
19. y la marca representa la posici n en la que se hizo el ltimo cambio antes de abandonarlo la ltima vez Asimismo como ya se dijo las marcas asocia das a letras may sculas se considerar n marcas globales es decir podremos saltar a ellas aunque en el momento de hacer el salto no nos encontremos en el buffer en el que se fijaron Esto es un m todo muy c modo para moverse entre los distintos ficheros Podemos adem s preguntar en donde est una marca concreta proporcio n ndola como argumento al comando marks As por ejemplo marks M nos indicar en qu fila columna y fichero est la marca M y marks ABC har lo mismo para las marcas A B y C ISEsto es tan cierto que si intentamos abandonar Vim sin haber llegado a visitar todos los ficheros se producir un mensaje de error indic ndonos que aun nos quedan ficheros por editar Si tras ese mensaje volvemos a ejecutar el comando q podremos salir de Vim Si queremos evitar dicho mensaje hay que proceder igual que para descartar los cambios usar el comando q Seg n el manual de Vim estando abiertos varios ficheros la combinaci n CTRL nos permite circular entre aquellos que ya hemos visitado mediante next alguna vez En mi teclado sin embargo esta combinaci n no funciona No hay que olvidar que la tecla en un teclado ingl s se obtiene directamente pero en un teclado espa ol exige primero pulsarla y luego pulsar la barra espacia
20. Cap tulo 11 Utilidades adicionales Al tratarse de los mismos registros tambi n aqu funciona la posibilidad de a adir algo al registro en lugar de sustituir su contenido simplemente indicando el nombre del registro con may sculas 11 6 Autocomandos Se denomina autocomando a un comando ejecutado autom ticamente cuando se produzca alg n evento Mediante ellos podemos por ejemplo cargar una con figuraci n distinta para Vim dependiendo del tipo de fichero que hayamos abierto permitir a Vim leer un fichero comprimido etc Resultan especialmente tiles si son colocados en el fichero de personalizaci n de Vim v ase m s adelante Los autocomandos se activan mediante autocmd evento fichero comando donde evento es el evento que los activar fichero es un patr n con el que debe coincidir el nombre del fichero y comando es el comando que se debe ejecutar Se pueden incluir varios eventos separ ndolos con comas Para una lista de los eventos pulse help fevent Cap tulo 12 Personalizaci n de Vim Llamo personalizar a Vim realizar los ajustes necesarios de sus opciones para conseguir que Vim trabaje a nuestro gusto Obviamente esto lo podemos conseguir en cada sesi n de Vim mediante el comando set pero en este apartado me referir a c mo conseguir esa personalizaci n sin necesidad de tener que ajustarla manualmente en cada sesi n B sicamente la personalizaci n puede hacerse para todas las s
21. Emparejamiento de caracteres Hay caracteres que suelen ir por parejas como los par ntesis los corchetes o las llaves En un texto normal cuando un par ntesis se abre en alg n lugar m s adelante debe cerrarse El comando usado sin argumento num rico trabaja sobre estos caracteres que van por parejas Colocado el cursor sobre uno de esos caracteres saltar a su complementario Esto es especialmente til en programaci n cuando hay par n tesis anidados pues el comando sabr buscar el cierre exacto de un par ntesis y si hemos olvidado cerrarlo no har nada con lo que nos percataremos del error Si el cursor no est exactamente sobre uno de los caracteres sobre los que act a el comando este buscar el primer car cter que defina un par y saltar a su correspondiente pareja En principio trabaja sobre las parejas y No trabaja sobre las parejas 4 dado que esas parejas de caracteres no existen en ingl s ni en ning n idio ma distinto del espa ol No obstante mediante la opci n matchpairs podemos definir los caracteres que queremos que respondan al comando Cap tulo 3 Comandos para el movimiento del cursor 3 2 3 B squeda de palabras La b squeda de palabras se diferencia de la b squeda de caracteres en que ahora la b squeda no se limita a un car cter solo sino que se pueden buscar dos o m s caracteres y adem s el rango de la b squeda no se limita a la l nea
22. En l cualquier pulsaci n de teclas que realicemos se interpretar como comando Por el contrario en el modo de inserci n Vim se comporta como cualquier otro editor de texto es decir lo que vayamos tecleando se ir mostrando en pantalla en el lugar donde estaba el cursor siendo interpretado como texto que hay que introducir en el documento que estamos editando Debemos fijarnos en que Vim llama modo normal a aquel en el que menos se parece a otros editores de texto Tal vez por ello a veces a este modo se le llama modo de comando aunque el nombre de modo normal es bastante indicativo de la filosof a de Vim La idea es que siempre que no estemos haciendo otra cosa activemos el modo normal mientras revisamos el texto escrito mientras reflexio namos sobre qu a adir mientras contestamos al tel fono si hacemos una pausa para sorber una taza de caf se supone que habremos activado el modo normal 2 1 2 Otros modos Adem s de los modos normal y de inserci n en Vim existen los modos de l nea de comandos visual de selecci n y de reemplazo En el modo de l nea de comandos podemos escribir el nombre completo de un comando con sus argumentos y ejecutarlo al pulsar la tecla INTRO No se suele considerar un modo distinto del modo normal V ase m s adelante cuando hable mos de comandos En el modo visual conforme movemos el cursor el texto se va se alando visual mente de modo similar a lo que ocurre en otras aplicaciones c
23. Page means for a printed book the title page itself plus such following pages as are needed to hold legibly the material this License requires to appear in the title page For works in formats which do not have any title page as such Title Page means 111 Cap tulo D Licencia GNU para Documentaci n Libre the text near the most prominent appearance of the work s title preceding the beginning of the body of the text A section Entitled XYZ means a named subunit of the Document whose title either 1s precisely XYZ or contains XYZ in parentheses following text that translates XYZ in another language Here XYZ stands for a specific section name mentioned below such as Acknowledgements Dedications Endorsements or History To Preserve the Title of such a section when you modify the Document means that it remains a section Entitled XYZ ccording to this definition The Document may include Warranty Disclaimers next to the notice which states that this License applies to the Document These Warranty Disclaimers are considered to be included by reference in this License but only as regards disclaiming warranties any other implication that these Warranty Disclaimers may have is void and has no effect on the meaning of this License 2 VERBATIM COPYING You may copy and distribute the Document in any medium either commercially or noncommercially provided that this License the copyright notices and the license
24. Patr nB squeda comando Al igual que en las sustituciones se buscar un texto a lo largo del rango indi cado con la diferencia de que cuando se encuentre ese texto en lugar de poner otro texto en su lugar se ejecutar el comando indicado Otra diferencia con substitu te es que el rango por defecto en global es el de todo el documento Si en lugar de global se ejecuta global el comando se ejecutar en todas las l neas que no coincidan con el patr n de b squeda Por ejemplo imaginemos que en un programa C queremos cambiar la pala bra uno por la palabra dos pero s lo en los comentarios que en el estilo C empiezan por los caracteres La siguiente l nea lo har a por nosotros Cap tulo 4 Comandos elementales de manipulaci n del texto g s uno dos g Analic mosla despacio a En primer lugar tenemos el comando propiamente dicho g a El car cter que se encuentra a continuaci n es el car cter que se ha elegido para delimitar las partes del comando Se ha escogido este porque en el patr n de b squeda se usa el car cter Por lo tanto el texto que est entre los dos signos usados como delimita dores es el patr n de b squeda Este patr n es El comando que hay que ejecutar cada vez que se encuentre dicho texto es s uno dos g lo que significa cambiar todas las apariciones de uno por dos en el ra
25. Version of the Document means any work containing the Document or a portion of it either copied verbatim or with modifications and or translated into another language A Secondary Section is a named appendix or a front matter section of the Docu ment that deals exclusively with the relationship of the publishers or authors of the Docu ment to the Document s overall subject or to related matters and contains nothing that could fall directly within that overall subject Thus if the Document is in part a textbook of mathematics a Secondary Section may not explain any mathematics The relationship could be a matter of historical connection with the subject or with related matters or of legal commercial philosophical ethical or political position regarding them The Invariant Sections are certain Secondary Sections whose titles are designated as being those of Invariant Sections in the notice that says that the Document is released under this License If a section does not fit the above definition of Secondary then it is not allowed to be designated as Invariant The Document may contain zero Invariant Sections If the Document does not identify any Invariant Sections then there are none The Cover Texts are certain short passages of text that are listed as Front Cover Texts or Back Cover Texts in the notice that says that the Document is released under this License A Front Cover Text may be at most 5 words and a Back Cover Text
26. W Borra la ltima palabra escrita CTRL U Borra desde el cursor hasta el principio de la l nea en la l nea superior Esto ayuda a escribir l neas de contenido muy parecido 7 2 5 Autocompletado Vim incluye una funci n de autocompletado en el modo de inserci n Durante la escritura del fichero pulsando CTRL P se insertar bien una copia de la ltima palabra escrita bien la palabra m s pr xima por la izquierda que coincida con la parte tecleada Pulsando sucesivamente CTRL P se ir buscando la pr xima coincidencia hacia atr s Si se quiere buscar coincidencias hacia delante hay que pulsar CTRL N La base de datos de palabras donde buscar para esta funci n se extrae en primer lugar del buffer actual en segundo lugar del resto de los buffers de la lista de buffers y en tercer lugar de los ficheros a los que se establece un enlace tag en ES Cap tulo 7 Manipulaci n del texto en los modos visual y de inserci n terminolog a de Vim o que son cargados mediante la directiva include propia de la programaci n en C y C No obstante mediante las siguientes combinaciones de teclado podemos ayudar a la funci n de autocompletado indic ndole a Vim que tipo de palabra buscamos CTRL X CTRL F Nombres de ficheros a CTRL X CTRL L L neas completas a CTRL X CTRL D Definiciones de macros en un programa C C ASM o en un fichero llamado mediante include a CTRL X CTRL I Ficheros incluidos en nue
27. actual Como Vim no tiene forma de saber cu ntos caracteres queremos buscar estos comandos tienen una peculiaridad y es que aunque no sean comandos de los que antes llam de l nea de comandos no se ejecutan hasta que pulsemos INTRO y adem s hay eco en pantalla del texto que queremos buscar seg n lo tecleamos Es decir Cuando pulsamos el car cter asociado a estos comandos el cursor salta a la ltima l nea donde podremos escribir la cadena a buscar Un tipo especial de b squeda por palabras es la que usa expresiones regulares Pero la dificultad de estas expresiones aconseja que no sean tratadas aqu Las expresiones regulares no son abordadas en este documento Tal vez m s adelante escriba alguno monogr fico sobre ellas Comandos b sicos de b squeda Los comandos b sicos de b squeda son para buscar hacia delante y para buscar hacia detr s Tras pulsar cualquiera de estos comandos el cursor salta a la l nea inferior don de podremos escribir la cadena a buscar Tambi n podremos navegar por el historial de b squedas anteriores que funciona de modo similar al historial de comandos Cuando hayamos terminado de escribir la cadena a buscar hay que pulsar INTRO y la b squeda empezar en la direcci n indicada si se encuentra la cadena buscada el cursor se desplaza al principio de la misma si se llega al final del documento o al principio en las b squedas hacia atr s y no se ha encontrado autom ticament
28. comando ejecuta el programa almacenado en la opci n keywordprg que por defecto es man pas ndole como argumento la pala bra sobre la que se encuentre el cursor Si la opci n keywordprg estuviera vac a se ejecutar a el comando help Si recibe un prefijo num rico este se interpretar como la secci n del manual en el que hay que buscar en el caso de que el valor de keywordprg siga siendo el de man El comando shelP suspende la ejecuci n de Vim e inicia un shell nuevo Cuan do salgamos de l volveremos a Vim Si Vim se est ejecutando en modo gr fico es posible que la consola desde la que se ejecuta nuestra shell no 92 Cap tulo 11 Utilidades adicionales sea totalmente operativa Un efecto parecido se obtiene pulsando en el modo normal y ejecut ndose Vim en una terminal de texto CTRL Z en modo gr fico CTRL Z se limita a minimizar la ventana La diferencia es que en este ltimo caso Vim suspende su ejecuci n pasa al segundo plano y devuelve el control al mismo shell desde el que fue llamado y no a uno nuevo El co mando suspend hace lo mismo Para recuperar el control de Vim hay que volverlo a traer al primer plano El funcionamiento de estas utilidades que conectan a nuestro buffer con coman dos externos al propio Vim depende del valor de varias opciones shell shellemd flag shellquote shellxquote sheltype shelsplash y shelredir Si se produce alg n problema o funcionamien
29. cuales son ejecute el comando digraphs examinando atentamente la lista se ver que el Cap tulo 7 Manipulaci n del texto en los modos visual y de inserci n nombre elegido tiene cierta relaci n con lo que cada digrafo representa al menos teniendo en cuenta su nombre en ingl s Tambi n podemos crear nuestros propios digrafos mediante el comando digraph secuencia c digo donde secuencia es la secuencia de teclado que junto con CTRL K escribir el digrafo y c digo es el c digo num rico del car cter a representar Tambi n pode mos escribir el car cter propiamente dicho pero si nos es posible hacerlo para qu crear un digrafo 7 2 3 3 Comandos para el sangrado Estando en el modo de inserci n en cualquier punto de la l nea en el que nos encontremos CTRL D eliminar un nivel de sangrado OCTRL D eliminar todos los sangrados y CTRL T a adir un nivel al sangrado 7 2 4 Hacer correcciones en el modo inserci n La gran variedad de comandos que hemos visto que existen para borrar y mo dificar el texto insertado funcionan en el modo normal Un grupo m s peque o lo hace en el modo visual En el modo de inserci n tambi n es posible realizar algunas correcciones conforme vamos escribiendo Adem s de las teclas Supr y Retro que funcionan tanto en el modo de inserci n como en el modo normal para corregir peque as equivocaciones en el modo de inserci n funcionan los siguientes comandos CTRL
30. cuando se pulsa el tabulador Vim calcula a donde debe ir el cursor partiendo del valor de softtabstop Si en esa posici n hay una parada real del tabulador inserta un aut ntico car cter de tabulaci n en otro caso inserta caracteres en blanco expandtab Cuando esta opci n se establece Vim nunca insertar saltos de tabu lador duros sino siempre espacios en blanco smarttab Esta opci n provoca que el salto de tabulador ubicado a la izquierda de la l nea sea siempre tratado como un salto blando cuyo valor vendr pre determinado por el de la opci n shiftwidht v ase m s adelante El resto de los saltos de tabulador ser n saltos duros Esta opci n s lo funciona si softtabstop se establece con valor 0 Cap tulo 5 Gesti n de l neas sangrados y tabuladores 5 2 3 El comando retab El cambio de una de las opciones que se acaban de ver s lo produce efectos a partir de que se realice es decir el resto del documento quedar como estaba antes Con el comando retab podemos reajustar los tabuladores en todo el documento o en una parte de l Su formato es el siguiente rango ret ab nuevo tabstop Este comando transforma los saltos de tabulador del texto comprendido en las l neas sobre las que act e Se puede usar para convertir los tabuladores en espacios o viceversa Por ejemplo si tenemos texto escrito con un valor 4 para tabstop y queremos convertirlo a 8 pero consiguiendo que se siga vie
31. esquemas exis tentes podemos mirar en el directorio usr share vim vim63 colors o m s f cil escribir colorscheme y con la tecla TAB ir mirando los que el propio Vim nos sugiere Contraste Cada esquema de colores tiene dos versiones en la intensidad de los mismos dependiendo de que el fondo de la pantalla sea claro u oscuro Po demos indicar manualmente c mo es el fondo de la pantalla mediante el comando set background dark O set background light 10 1 3 Desactivar el reconocimiento de sintaxis En sistemas poco potentes o en ficheros muy grandes el reconocimiento de sintaxis puede enlentecer demasiado al ordenador Por ello podemos Suspender temporalmente el reconocimiento de sintaxis para el buffer activo comando syntax clear Detener completamente el reconocimiento de sintaxis para cualquier buffer comando syntax off a Indicar que s lo se reconozca la sintaxis cuando as se indique expresamen te comando syntax manual y luego en el fichero en el que queramos activar esta utilidad set syntax 0N 10 2 Plegado de documentos Esta es una de las utilidades que m s me gustan de Vim y posiblemente la que me decidi a acercarme a l Se trata de la posibilidad de esconder un bloque de l neas del documento de tal manera que s lo sea visible la primera l nea del bloque Cap tulo 10 Comandos para la visualizaci n Esto es muy til en documentos largos pues permite v
32. instant neo Pero si digo que hay que pulsar nohlsearch significa que el comando es de l nea de comandos y que por lo tanto no se ejecutar hasta que pulsemos INTRO Sigue Vim alg n criterio para hacer que ciertos comandos sean instant neos y otros no La verdad es que s lo sigue y en general los comandos de l nea de comandos lo son por alguno de los siguientes tres motivos 1 Porque son comandos demasiado poco habituales como para que merezca la pena tener asociados a ellos de modo permanente una tecla A fin de cuentas las teclas a las que asociar comandos son pocas y hay que pensar muy bien a qu comandos asociarlas De hecho por defecto todas las teclas del alfabeto est n asociadas a alguna acci n V ase al respecto la secci n A p gina 103 2 Porque son comandos que requieren argumentos complejos o m s comple jos que un simple argumento num rico y un mbito de actuaci n que son los nicos argumentos que admiten los comandos de ejecuci n inmediata 3 Porque son comandos que es peligroso que se puedan ejecutar por error Como aclaraci n de esta ltima afirmaci n dir que en principio cualquier ac ci n que realicemos sobre el texto puede ser deshecha mediante el comando des hacer u por lo que a Vim no le importa que algunos comandos dr sticos como jg Cap tulo 2 Las nociones fundamentales de Vim borrar puedan ser ejecutados por error tal vez por no darnos cuenta de que est ba mos e
33. la actual hacia abajo Ahora bien como el comando para ir al principio de la l nea es un cero 0 aqu no cabe argumento num rico pues entonces no habr a forma de saber si el 0 es ya la orden o forma parte del n mero Esa es la raz n de que en este caso no se admita argumento num rico Y lo mismo ocurre si en lugar del comando 0 usamos la tecla Inicio el argumento num rico ser ignorado Cap tulo 3 Comandos para el movimiento del cursor 3 1 2 Movimientos basados en el reconocimiento de objetos Ya se ha visto que Vim es capaz de reconocer ciertos objetos palabras p rrafos frases etc Pues bien dispone de un conjunto de comandos para el movi miento del cursor basados en dicho reconocimiento de objetos En particular estos comandos son los siguientes Movimiento por palabras En el movimiento por palabras las ideas fundamen tales son las de Inicio de palabra y Final de palabra Recu rdese que para Vim una palabra es un conjunto de letras y caracteres num ricos delimita dos por caracteres que no son letras Por lo tanto el principio de una palabra es la primera letra que tenga a la izquierda un car cter delimitador y el final de una palabra es la ltima letra que tenga a su derecha un car cter delimita dor Teniendo en cuenta lo anterior los movimientos posibles son w Pr ximo principio de palabra b Anterior principio de palabra e Pr ximo final de palabra ge Anterior final de palabr
34. la informaci n sobre qu se est edi tando lo que incluye la lista de ficheros ventanas marcas registros y en general toda la informaci n indicada en la opci n sessionoptions Para restaurar una se si n previamente almacenada el comando es source fichero aunque tambi n podemos indicar a Vim en el momento de arrancar que arranque con una concreta sesi n Para ello se usa la opci n de l nea de comandos c seguida del comando source As la siguiente orden en nuestra shell vim c source Guia Vim vim Cap tulo 11 Utilidades adicionales abrir Vim y cargar el fichero con la sesi n indicada Para una lista de las cosas que se pueden salvar con una sesi n consulte la ayuda de la opci n sessionoptions 11 4 Comprobar diferencias entre dos ficheros con Vim diff Hay una forma especial de arrancar Vim que sirve para mostrar las diferencias entre dos ficheros se trata de vimdiff ficherol fichero2 Cuando Vim es llamado de esa manera ambos ficheros son analizados y ca da uno de ellos es colocado en una ventana vertical de tal manera que podamos examinarlos a doble columna No se muestra sin embargo todo el texto sino ex clusivamente aquellas secciones en las que Vim haya detectado alguna diferencia la cual adem s estar coloreada aunque en un fichero con sintaxis muy florida puede ser dif cil distinguir qu colores se deben a la sintaxis y qu otros a las di ferenc
35. los distintos directorios Para ir a uno de ellos basta con colocar el cursor sobre l y pulsar INTRO Para movernos al nivel anterior podemos bien colocar el cursor sobre la entrada y pulsar INTRO bien pulsar la tecla Para abrir un fichero basta con colocar el cursor sobre l y pulsar INTRO CTRL O nos llevar de nuevo al directorio Adem s de los movimientos normales del cursor estando en un directorio po dremos ejecutar los siguientes comandos o Abre el fichero sobre el que est el cursor en una nueva ventana O Abre el fichero sobre el que est el cursor en la ventana previamente visitada la ltima en la que estuvo el cursor que no sea la del explorador Si s lo 6699 hay una ventana su efecto es similar a o z5 Cap tulo 8 Trabajo con ficheros p Abre el fichero en una nueva ventana y devuelve el cursor a la ventana del explorador i Activa o desactiva la visualizaci n de los datos adicionales del fichero ta ma o fecha de la ltima modificaci n etc Cuando esta informaci n no se est mostrando el comando i la muestra Cuando se est mostrando este mismo comando la oculta s Ordena la lista de ficheros por el campo sobre el que est colocado el cursor en ese momento nombre tama o o fecha r Invierte el orden actual c Convierte el directorio actual en directorio activo del sistema es como si se ejecutara en la shell el comando ed DirectorioMostrado
36. n mero de caracteres Pero no es un operador es decir no admite un mbito para su efecto a no ser que se establezca la opci n tildeop que convierte a este comando en operador notildeop le devuelve a su estado normal Aunque en realidad nunca es preciso convertir a en operador pues para ello ya est n los comandos gu gU y g que admiten un mbito de actuaci n y afectar n a todos los caracteres que se encuentren dentro del mbito El primero los pondr a todos en min sculas el segundo en may sculas y el tercero cambiar el estado de cada car cter poniendo en may sculas a los que estaban en min sculas y viceversa 6 4 Sumar y restar Colocado el cursor sobre un n mero CTRL A le sumar una unidad o el prefijo num rico que se haya tecleado y CTRL X se la restar Estos comandos adem s son capaces de distinguir entre n meros decimales binarios y octales 6 5 Encriptar el fichero El comando g encripta el texto comprendido en su mbito de actuaci n Volviendo a ejecutar el comando sobre un texto ya encriptado lo desencriptar El comando en s no es excepcionalmente til porque tras encriptar no exige clave por lo que cualquier persona que vea un fichero encriptado y reconozca el algoritmo de Vim podr desencriptarlo simplemente editando el fichero con Vim y ejecutando sobre l g Si acaso puede servir para con un r pido comando evitar miradas indiscretas por encima del
37. n lo que modificamos es esa zona de memoria El fichero como tal permanece inalterado hasta que expl citamente de mos la orden de grabar en disco las modificaciones momento en el que se borra el fichero original y se escribe otro con el mismo nombre y con el contenido del buf fer Este momento es por lo tanto muy peligroso pues si se cortara el suministro el ctrico en el momento en el que ya se ha borrado la versi n anterior pero aun no se ha grabado la nueva perder amos el fichero original y sus cambios Vim es de los pocos editores que es consciente de ese peligro y ofrece una opci n para evitarlo Se trata de la opci n writebackup Cuando se activa al ir a guardar las modificaciones en lugar de borrar el fichero original lo que se hace es cambiarle el nombre luego se graba la nueva versi n y si todo ha ido bien se borra la versi n original 71 Cap tulo 8 Trabajo con ficheros 8 1 2 Abandonar un fichero que ha sufrido modificaciones Una peculiaridad de Vim es que no permite abandonar un buffer que haya su frido modificaciones sin que expresamente indiquemos si queremos guardar dichas modificaciones o descartarlas En el caso de que lo intentemos se generar un error Esta regla se aplica a todos los casos en los que un buffer modificado va a ser descargado de la memoria cosa que ocurre cuando indicamos el comando q salir de Vim cuando intentamos abrir un fichero nuevo e o cuando teniendo vario
38. o izquierda o una l nea arriba o abajo o desplazarlo al principio o al final de la l nea En Vim funcionan las teclas de movimiento del cursor y adem s lo hacen tanto en el modo normal como en el modo de inserci n Pero se proporcionan tambi n comandos equivalentes a ellos Veamos cuales son y despu s se explicar por qu se proporcionan estos comandos TECLA DEL CURSOR COMANDO Flecha izquierda h Flecha derecha 1 Flecha arriba k Flecha abajo j Inicio 0 cero Fin RePag CTRL U AvPag CTRL D En la tabla anterior he usado el nombre espa ol de las teclas de movimiento del cursor En ingl s las teclas Inicio Fin RePag y AvPag se llaman respectivamente Home End PgUp y PgDn Por qu ofrece Vim un conjunto de comandos adicional para algo que ya hacen las teclas del cursor Por un triple motivo El primero es el de que no todos los teclados tienen teclas de movimiento del cursor Hay teclados muy antiguos aun en funcionamiento que carecen de ellas y ello no debe impedir la ejecuci n correcta de Vim La segunda raz n es la de facilitar la escritura de scripts para Vim ya que es m s f cil referirse a las teclas de movimiento del cursor de la misma manera que se hace referencia al resto de comandos Pero la raz n fundamental es la de la efectividad Los dise adores de Vim calcularon que el comando que m s veces se repite durante una edici n de texto normal es el movimien
39. otros se corresponde con teclas realmente im primibles pero que por razones que no se pueden ahora analizar tienen nombre propio Car cter o tecla Nombre lt Bar gt lt Bslash gt lt lt Lt gt Car cter nulo lt Nul gt Deshacer lt Undo gt Nueva L nea lt NL gt Fin de l nea lt EOL gt lt LF gt Ayuda lt Help gt Si alguna tecla debe ser pulsada junto con alguna de las teclas de cambio se utiliza la siguiente notaci n Tecla Nombre Control lt C gt 108 Cap tulo C Nombres de las teclas en Vim Alt lt M gt lt A gt May sculas lt S gt 109 Ap ndice D GNU Free Documentation License Licencia GNU para Documentaci n Libre Version 1 2 November 2002 Copyright 2000 2001 2002 Free Software Foundation Inc 59 Temple Place Suite 330 Boston MA 02111 1307 USA Everyone is permitted to copy and distribute verbatim copies of this license document but changing it is not allowed Preamble The purpose of this License is to make a manual textbook or other functional and useful document free in the sense of freedom to assure everyone the effective freedom to copy and redistribute it with or without modifying it either commercially or noncommer cially Secondarily this License preserves for the author and publisher a way to get cr
40. parte de ellas podemos preceder al comando de un argumento num rico y tambi n podemos preceder a la indicaci n de mbito de argumento num rico se ver porqu se dice que Vim es tan extremadamente potente 106 Ap ndice C Nombres de las teclas en Vim En ocasiones tenemos que llamar a las teclas por su nombre Puede ser para grabar una macro un comando map una abreviatura una petici n de ayuda etc En todos estos casos se distingue entre las teclas que imprimen un car cter visible y las dem s Las primeras se representan por el car cter que imprimen A efectos de Vim cada car cter imprimible es una tecla diferente y as f es distinta de F al tratarse de dos caracteres distintos Se considera adem s una sola tecla aunque para conseguirla debamos realmente pulsar dos la tecla con la F y a tecla de may sculas El resto de las teclas se desinan por un nombre encerrado entre los caracteres lt y gt para los cuales no hay nombre especial en espa ol en ingl s se les llama par ntesis agudos salvo la tecla Control que a veces se designa como CTRL por ejemplo para pedir ayuda sobre ella y otras veces se indica con el car cter junto 2 a la tecla pulsada con ella y asi C significa CTRL C En la siguiente tabla se recogen los nombres de las teclas salvo en el caso de las teclas de funci n donde se ponen dos ejemplos en los dem s casos si en la columna de la derech
41. por Vim en su l nea de comandos que est n perfectamente explicadas en la p gina Man de Vim y deben ir precedidas de un gui n y ficheros se refiere al nombre de los ficheros a editar a Si no se indica ning n fichero Vim empezar con un buffer vac o a Si se indica un solo fichero Vim lo leer y lo cargar en un buffer que ser el que muestre su pantalla al iniciarse a Si se indican varios ficheros hay que separarlos por espacios en blanco Vim asignar un buffer distinto a cada uno de ellos y al empezar mostrar en pantalla el buffer correspondiente al primer fichero Para navegar entre los buffers hay que usar el comando next V ase la secci n 8 4 p gina 77 Si simplemente tecleamos vim normalmente aparecer la versi n para con sola de la aplicaci n y muy posiblemente nos cause una pobre impresi n pues simplemente veremos una pantalla negra cuyas l nea empiezan salvo la primera y la ltima con un signo de tilde en el centro un mensaje de bienvenida y en la ltima l nea posiblemente algunos caracteres Si intentamos movernos por la pantalla comprobaremos adem s que las teclas del cursor no hacen nada y que el rat n tampoco responde Qu ocurre Que Vim ha empezado en un buffer vac o y en su modo normal En este modo Vim est esperando la introducci n de alg n comando pero el te cleado de los comandos normales no se refleja en pantalla Las flechas del cursor son comandos pero n
42. relaciones entre los distintos bloques de c digo En materia de sangrado por lo tanto la idea de nivel es muy importante El nivel representa la cantidad de veces que una l nea ha sido sangrada En Vim el ancho del sangrado no depende del valor de ninguna de las opciones que controlan a los tabuladores sino que depende de una opci n espec fica que se denomina shiftwidth Cada vez que se aumenta el nivel de sangrado se a aden tantos espacios en blanco como indique esta opci n El comando gt aumenta el nivel de sangrado del mbito al que se aplique gt gt aumenta el nivel de sangrado de la l nea actual mientras que lt y lt lt Cap tulo 5 Gesti n de l neas sangrados y tabuladores reducen el nivel de sangrado Cada vez que se ejecutan estos comandos el nivel de sangrado aumenta o disminuye en un valor igual al fijado en la opci n shiftwidth Por defecto cuando se ejecutan estos comandos Vim inserta tantos espacios en blanco como indique shiftwidht No obstante si se establece la opci n shif tround entonces Vim tratar al sangrado de modo similar a las marcas del tabu lador e insertar s lo los espacios necesarios para alcanzar la pr xima marca de sangrado La diferencia se ve clara en el siguiente ejemplo Imaginemos que estamos tra bajando con un valor para shiftwidth igual a 4 y que en una l nea vac a hemos introducido dos espacios en blanco Si en ese momento ejecutamos el co
43. se encuentra en el fichero swap 11 2 Conexi n con comandos del sistema operativo En Vim podemos ejecutar comandos del sistema operativo pas ndoles como argumento nuestro buffer de edici n o alg n rango dentro de l y ver el resul tado de dichos comandos o incluso integrarlo en el buffer objeto de edici n Los comandos para hacer esto son write comando read comando Ve moslos por separado El comando Mediante este comando podemos se alar una parte del fichero un mbito de actuaci n del comando y enviarla como argumento de entrada a alg n comando externo a Vim recogiendo luego el resultado del mismo y 01 Cap tulo 11 Utilidades adicionales coloc ndolo en lugar del texto que se us como argumento Esta operaci n se hace fundamentalmente para aprovechar el comando sort coy El mbito para habituales Si no indicamos el rango de forma manual tras haber pulsado y el comando que delimite el mbito un movimiento del cursor un objeto de texto un texto previamente seleccionado el cursor saltar a la l nea inferior y tras escribir el rango de l neas que se haya seleccionado y el comando esperar a que escribamos el nombre del comando externo a ejecutar puede indicarse por cualquiera de los procedimientos coy Por ejemplo para ordenar alfab ticamente las cinco pr ximas l neas deber a mos escribir 5 y luego sort o directamente escrib
44. sobre el teclado en cualquier otro modo distinto del normal En suma si llamamos modo a una manera especial de funcionar que habilita ciertos comandos y que hace que Vim interprete de cierta manera lo que se teclea que se inicia cuando en el modo normal se pulsa cierta tecla y que se termina cuando se pulsa ESC no hay duda de que la pulsaci n de los dos puntos activa un verdadero modo En esta gu a sin embargo hablar de comandos de l nea de comandos porque me es m s sencillo hablar gen ricamente de comandos y se alar que algunos empiezan por el car cter de los dos puntos Y como por otra parte no se dedica ning n cap tulo a la edici n en la l nea de comandos esa es de las partes no tratadas en esta Gu a puedo hacerlo as tranquilamente Cuando en el modo normal pulsamos el cursor se traslada a la ltima l nea de la pantalla escribe los dos puntos y espera a que escribamos el nombre del comando el cual no ser ejecutado hasta que le indiquemos a Vim que hemos terminado de escribir el nombre del comando con todos sus argumentos cosa que se hace pulsando INTRO Debido a que estos comandos se introducen siempre empezando por el coman do muchas veces se considera que los dos puntos forman parte del nombre del comando Y de hecho as lo har yo en este manual ya que esa es una forma c moda de indicar la naturaleza de un comando Y as si digo que hay que pulsar daw significa que se trata de un comando
45. un bloque de texto desde dicha memoria Por ejemplo si el comando d3ap borrar a tres p rrafos envi ndolos a la me moria de intercambio el comando ad3ap borrar tres p rrafos pero adem s de enviar su contenido a la memoria de intercambio lo enviar al registro a donde se mantendr hasta que expl citamente enviemos otro texto En consecuencia para pegar el contenido del registro a el comando ser ap 46 Cap tulo 4 Comandos elementales de manipulaci n del texto Los nombres de los registros se pueden usar en min sculas o may sculas Cuando se trata de traer texto desde el registro no hay diferencia Pero cuando se trata de copiar texto al registro s hay diferencia si se indica el nombre del registro en min sculas el texto copiado sustituir al que anteriormente pudiera ha ber pero si se indica el nombre en may sculas el texto copiado se a adir al que antes hubiera Asi la secuencia ayy copia la l nea actual en el registro a borrando su contenido anterior Pero Ayy hace que la l nea actual se a ada al contenido previo del registro a 4 2 4 2 Registros especiales En principio para los registros disponemos de las letras del alfabeto propiamen te dichas Algunos caracteres que no son letras tambi n funcionan como registros pero se trata de registros especiales y la mayor a de ellos son de solo lectura por el usuario Estos registros son 0 Contiene e
46. 3 3 3 Navegar por el documento II Modificaci n del texto 4 Comandos elementales de manipulaci n del texto en el modo normal 4 1 4 2 4 3 4 4 Comandos para borrar text0 o o 4 1 1 Los comandos d dd c ec y Tilo ooo 4 1 2 Abreviaturas para d y e 2 ooo o Cortar Copiar y pegar texto 2 ee 4 2 T Perartexto o a a o Gea he oS ADD Copiar texto rt dl o res ols bo 4 2 3 Uso del porta papeles o o ADA USO dE TODISMOS ene ena rd RR a S 4 2 4 1 Registros en general 4 2 4 2 Registros especiales o 4 2 4 3 El agujero negro y el registro de expresiones 4 2 5 Los comandos copy y move o o o o o Sustituci n global de texto o o en 4 3 1 El comando substitute o ee 4 3 2 Indicadores de la sustituci n o Los comandos global y normal o o ooo 5 Gesti n de l neas sangrados y tabuladores 5 1 5 2 53 Lineas ui isc io A RE GOR eA Ew pace e 5 1 1 Los saltos de l nea en los editores de texto 5 1 2 Inserci n autom tica de saltos de l nea 5 1 3 Reformateo de l neas el comando gq 5 1 4 Alineaci n de texto s sccur paresi o Saltos de tabulador
47. Cap tulo 4 Comandos elementales de manipulaci n del texto D d Borra hasta fin de l nea C c Cambia hasta fin de l nea S cl Cambia un car cter S cc Cambia una linea Enti ndase que al decir cambiar se quiere decir borrar y dejar activado el modo de inserci n 4 2 Cortar Copiar y pegar texto La terminolog a que se va extendiendo cada vez m s distingue entre Cortar co piar y pegar texto En el primer caso eliminamos texto del documento para enviarlo a una zona de memoria en el segundo enviamos el texto a dicha zona de memoria sin eliminarlo del documento y en el tercero insertamos en alg n lugar de nuestro documento el texto resultado de la ltima operaci n de cortar o pegar En Vim sin embargo no puede hablarse en sentido estricto de Cortar texto como algo diferenciado de borrar texto Toda operaci n de borrar es tambi n operaci n de cortar 4 2 1 Pegar texto Cuando una porci n de texto es borrada Vim la almacena en un buffer especial de memoria de tal manera que pueda ser recuperada despu s Para ello se usan los comandos p y P el primero inserta el texto en el lugar donde se encuentra el cursor y el segundo lo inserta a la izquierda del cursor Ambos comandos dejan el cursor en su lugar original Si queremos que el cursor se desplace al final del texto insertado o al principio hay que usar gp y gP El mismo texto lo podemos insertar cuantas veces queramos e
48. Estos comandos provocan el efecto de terminar la ejecuci n de Vim 82 Cap tulo 9 Ventanas Otro comando que afecta globalmente a todas las ventanas es wall que guarda los cambios en todas las ventanas Cap tulo 10 Comandos para la visualizaci n El grupo de comandos que a continuaci n se detallan no afectan al buffer ob jeto de edici n en s mismo considerado sino a c mo lo veremos en Vim Estos comandos se pueden agrupar en dos categor as visualizaci n general y visualiza ci n individual de ficheros 10 1 Resaltado de sintaxis 10 1 1 Reconocimiento de sintaxis En los ficheros que se ajustan a alguna sintaxis determinada la de un lengua je de programaci n o un lenguaje de marcas podemos hacer que Vim destaque mediante colores diferentes sus distintos elementos Para ello adem s de tener una terminal que soporte el uso de colores hay que activar ejecutar el comando syntax enable o el comando syntax on La diferencia entre ambos est en que el primero adem s de activar el reconocimiento de sintaxis carga en me moria nuestras especificaciones y personalizaciones en esta materia mientras que el segundo sobreescribe nuestra posible personalizaci n con los valores por defec to de Vim Si no hemos realizado ning n ajuste manual de esta funci n no hay diferencia entre ambos comandos Si tras ejecutar este comando no se activara el coloreado de sintaxis esto puede deberse a que nu
49. Vim Referencia r pida Joaqu n Ataz L pez Murcia Diciembre de 2004 Copyright c 2004 Joaqu n Ataz L pez Permission is granted to copy distribute and or modify this document under the terms of the GNU Free Documentation License Version 1 2 or any later ver sion published by the Free Software Foundation with no Invariant Sections no Front Cover Texts and no Back Cover Texts A copy of the license is included in the section entitled GNU Free Documentation License Se otorga permiso para copiar distribuir o modificar este documento en los t r minos de la Licencia GNU para Documentaci n Libre versi n 1 2 o cualquier versi n posterior publicada por la Free Software Foundation sin secciones in variantes sin textos de la cubierta frontal y sin textos de la cubierta posterior Una copia completa de la licencia en ingl s se incluye en la secci n titulada GNU Free Documentation License ndice general I Introducci n Sobre esta gu a 1 Ideas b sicas sobre Vim VA AQUEES VI rc de AA ht CR tee ao de AIA de S 1 2 Las versiones de VIM ee T A 1 3 Empezar y terminar la ejecuci n de Vim 1 4 Obtenci n de ayuda e Las nociones fundamentales de Vim 21e Modos de Vitis fo 20050 os ok etek oe pe ae RS ESE OE wR OG 2 1 1 Los modos fundamentales 2 1 2 Otrosmodos ae t e a Da e e a a a 2 1 3 Teclas para c
50. a En ocasiones sin embargo estos movimientos pueden ser muy lentos por que a veces usamos ciertos caracteres que normalmente delimitan palabras precisamente para unirlas El ejemplo m s claro es el gui n Si escribimos para choques lo que queremos es unir las dos palabras pero los movimien tos por palabras se detendr n en el gui n Por eso Vim proporciona los co mandos W B E y gE que hacen exactamente lo mismo que las versiones en min sculas con la salvedad de que en ellos s lo se conside ran delimitadores de palabras los caracteres invisibles es decir espacios en blanco tabuladores y saltos de l nea Movimiento por otros objetos de texto Adem s de por palabras Vim tiene co mandos de movimiento para los siguientes objetos de texto Va al principio de la frase Va al final de la frase Va al principio del p rrafo Va al final del p rrafo Va a la primera columna visible en la pantalla Movimiento por objetos de programaci n Estos comandos existen porque uno de los usos m s habituales de Vim es la escritura de programas y m s con cretamente programas en C Mediante estos comandos podemos movernos entre las distintas secciones del c digo fuente de un programa ls Cap tulo 3 Comandos para el movimiento del cursor Llave que abre el bloque actual de llaves Llave que cierra el bloque actual de llaves Par ntesis que abre el bloque actual de par ntesis
51. a ltima sea encontrada dentro del rango de actuaci n del comando indicadores Una serie de caracteres opcionales que modifican el comportamiento por defecto del comando Normalmente para distinguir entre el comando la cadena original la de reem plazo y los indicadores se usa una barra pero tambi n se pueden usar otros carac teres que no sean letras y en este punto Vim considera letras no solo a las letras propiamente dichas y a los d gitos sino tambi n a los espacios en blanco Por lo tanto como delimitadores se pueden usar los signos de puntuaci n y s mbolos adi cionales Esto es til sobre todo si deseamos buscar una expresi n que contiene una barra para evitar confusiones basta con usar como delimitador alg n otro ca r cter por ejemplo el gui n As para reemplazar el texto prueba original por prueba secundaria podr a mos usar el comando s prueba original prueba secundaria g 4 3 2 Indicadores de la sustituci n Los indicadores o modificadores alteran el comportamiento que por defecto tiene el comando substitute Son los siguientes 49 Cap tulo 4 Comandos elementales de manipulaci n del texto g Global Hace que se sustituyan absolutamente todas las apariciones del texto Sin l substitute s lo afectar a la primera aparici n de cada l nea Si se quie re que este indicador act e siempre hay que establecer la opci n gdefault aunque al hacerlo hay que tener
52. a secuencia teclado q Es decir en primer lugar tecleamos q para iniciar la grabaci n e indicamos a qu tecla queremos asociar lo que grabemos la indicaci n se hace simplemente pulsando dicha tecla Debe ser una letra de la a a la z en min sculas En ese mo mento empieza la grabaci n de todo lo que tecleemos hasta que volvamos a pulsar q cr la q Por ejemplo para asignar a la tecla p un comando que reformatee un p rrafo habr a que pulsar qpgqapq Una vez que hemos terminado la grabaci n de la secuencia de teclado po demos reproducirla ejecutando el comando tecla donde tecla se refiere a aquella a la que asign dicha secuencia As en nuestro ejemplo anterior podremos reformatear cualquier p rrafo simplemente pulsando p Una vez que hemos eje cutado el comando de esa manera 00 lo repetir Tambi n podemos indicar un prefijo num rico para el mismo de modo similar a como se har a con cualquier otro comando De otro lado es importante se alar que los registros en los que se almacenan estas secuencias de teclado son los mismos registros usados para copiar y pegar blo ques de texto por lo que tras haber grabado un comando podemos ver su contenido peg ndolo como si fuera un registro de texto con el comando registro p y viceversa podemos escribir la secuencia de teclado necesaria copiarla en un regis tro mediante el comando registro d y luego ejecutarla como comando
53. a hay m s de un nombre significa que esos nombres se pueden usar indistintamente Tecla Nombre Escape lt Esc gt Teclas de funci n lt F1 gt lt F2 gt etc Flecha izquierda lt Left gt Flecha derecha lt Right gt Flecha arriba lt Up gt Flecha abajo lt Down gt Inicio lt Home gt Fin lt End gt ReP g lt PageUp gt AvP g lt PageDown gt 107 Cap tulo C Nombres de las teclas en Vim ENTRAR lt Return gt lt Enter gt lt CR gt Espaciador lt Space gt Tabulador lt Tab gt Retroceso lt BS gt lt BackSpace gt Suprimir lt Del gt lt Delete gt Insertar lt Ins gt lt Insert gt en teclado num rico lt kDivide gt en teclado num rico lt kMultiply gt en teclado num rico lt kMinus gt en teclado num rico lt kPlus gt Si queremos referirnos a alguna tecla de movimiento del cursor pero precisan do que debe ser la versi n de dichas teclas que se encuentra en el teclado num rico cuando Bloqueo Num rico est desactivado se usa el mismo nombre de la tecla precedido de k As lt kUp gt significa Flecha arriba en el teclado num rico en la misma tecla que el 8 Por ltimo en la tabla que sigue se muestran un grupo de caracteres que tienen nombre propio en Vim Algunos de estos caracteres se corresponden con teclas que est n s lo en ciertos teclados
54. adas a letras min sculas pero las marcas asociadas a letras may sculas ser n consideradas absolutas es decir la marca no s lo se asocia a la l nea y columna sino tambi n al buffer de tal modo que podemos saltar a ella incluso desde otro buffer distinto Para saltar a una de estas marcas manuales se usa el acento grave seguido del nombre de la marca es decir su letra identificativa As por ejemplo a saltar a la marca creada con ma Recu rdese en este punto que en un teclado espa ol para escribir el acento grave hay que pulsar un espacio en blanco despu s del acento es decir para ir a la marca denominada a tendr amos que pulsar en este orden las teclas espacio y a Cap tulo 3 Comandos para el movimiento del cursor Si no queremos ir exactamente al lugar de la marca sino que nos conformamos con ir al principio de la l nea en lugar de un acento grave podemos usar un ap s trofe As a nos llevar al principio de la l nea en la que se encuentra la marca llamada a El comando marks nos muestra una lista de las marcas con su nombre en ella podemos ver que las marcas manuales tienen como nombre el car cter que les hemos asociado al crearlas y las marcas autom ticas tienen como nombre un n mero correspondiente al orden en que se crearon Hay adem s otras marcas es peciales La posici n del cursor antes de realizar un salto La posici n del cursor la ltima
55. ado Por ejemplo este documento lo estoy escribiendo con Vim fal tar a m s y el plugin Latex suite dicho plugin mapea ciertas combinaciones de letras en may sculas Por ejemplo ETR se convierte siempre en las sentencias BIEX necesarias para crear un entorno tabular Pero si yo quiero escribir en may s culas el nombre de la letra Retro tengo que escribir esa secuencia de caracteres Para evitar la expansi n cuando he escrito LET pulso CTRL V y ya puedo a adir el resto de la palabra RA CTRL V seguido de un n mero provoca que se inserte el car cter cuyo c digo coincida con el n mero tecleado El rango de los n meros admisibles es hasta el 255 Por ello si vamos a escribir un n mero de s lo uno o dos d gitos es conve niente a adir ceros por la izquierda para teclear exactamente tres d gitos Si tras CTRL V pulsamos una x el n mero que se introduzca a continuaci n se inter 0 pretar como n mero hexadecimal y si pulsamos una o se interpretar como n mero octal La misma funci n que CTRL V la cumple CTRL Q si bien esta ltima no funciona en ciertas terminales Unix seg n dice la ayuda de Vim Por ltimo con la combinaci n CTRL K conseguimos que las pr ximas pul saciones se interpreten como la clave de un digrafo Los digrafos son caracteres especiales que no est n en el teclado Vim permite incorporar algunos de ellos a nuestros documentos por este procedimiento Para ver una lista de
56. ambiar entre los modos 2 1 4 Saber en qu modo estamos o 2 2 Comandosde Vid 2 2 1 Comandos de ejecuci n inmediata 2 2 2 Comandos de l nea de comandos 2 2 3 Otras cuestiones relacionadas con los comandos 2 3 Indicaci n del mbito en los comandos 2 3 1 Objetos de texto os ic o ei a o an de 2 3 2 Seleccionar texto en Vim El modo visual 2 3 3 Indicaci n manual derangos Comandos para el movimiento del cursor 3 1 Comandos espec ficamente dirigidos a mover el cursor 3 1 1 Movimientos simples del cursor 3 1 2 Movimientos basados en el reconocimiento de objetos 3 1 3 Movimientos por y entre l neas 3 1 4 Movimientos horizontales y saltos de l nea 3 1 5 B squeda de caracteres en la l nea 3 2 Comandos que pueden producir un movimiento del cursor 3 2 1 Scroll de la pantalla o 3 2 2 Emparejamiento de Caracteres o o 3 2 3 B squeda de palabras 3 3 Marcas y saltos entre partes del documento 3 3 1 Marcas autom ticas o 3 3 2 Marcas manuales 00 00 00 1 13 13 14 14 14 16 16 16 17 19 21 22 24 26 28 28 ndice general
57. andos c para ir a la pr xima diferencia y c para ir a la diferencia anterior Cap tulo 11 Utilidades adicionales a Recomprobar las diferencias Mientras vamos haciendo cambios Vim inten ta mantener actualizado el control de las diferencias aunque eso no siempre es f cil cuando los cambios son muchos o son m s complejos que la sim ple supresi n y adici n de l neas Por ello podemos ejecutar el comando diffupdate para forzar a Vim a recomprobar los ficheros a Para eliminar una diferencia podemos mover el texto resaltado de una ven tana a otra Para ello podemos usar los comandos dp y do El primero hace que en la ventana inactiva se copie el contenido de la activa y el segun do al rev s hace que la ventana activa se ajuste al contenido de la inactiva Por ejemplo colocando el cursor sobre un bloque de texto existente en una de las ventanas y en el otro no dp har que ese bloque se copie a la otra ventana y do har que ese bloque se elimine de la ventana actual 11 5 Grabar y reproducir comandos En la secci n de personalizaci n veremos que mediante el comando map po demos crear nuevos comandos y asociarlos a ciertas teclas Hay otro procedimiento para hacerlo Se trata del comando q Este comando activa la grabaci n de golpes de teclado es decir tras pulsarlo se ir grabando lo que vayamos tecleando El formato general de este comando es el siguiente q tecl
58. andos o ejecuci n diferida Los primeros por otra parte se distribuyen en dos grupos los comandos con mbito y los comandos sin mbito 2 2 1 Comandos de ejecuci n inmediata Se dice que un comando es de ejecuci n inmediata cuando basta con teclearlo para que se ejecute Los comandos asociados a las acciones m s corrientes en la edici n son de este tipo como mover el cursor copiar texto borrarlo insertarlo desde memoria etc Estos comandos por otra parte pueden constar de un solo car cter o de m s de uno En el primer caso se ejecutan en cuanto el car cter ha sido pulsado En 7Si consideramos al modo de l nea de comandos como distinto del modo normal showmode tampoco nos informa de l pero ello posiblemente sea porque en este modo la zona usada por show mode para informar del modo est ocupada por la propia l nea de comandos 8Para cada una de las teclas del alfabeto hay asociado un comando distinto Se distingue adem s entre las letras en min sculas y en may sculas V ase el ap ndice A p gina 103 16 Cap tulo 2 Las nociones fundamentales de Vim el segundo caso no se ejecutan hasta que se ha terminado de pulsar pero durante su pulsaci n las teclas que vayamos escribiendo no se reflejan en la pantalla Por ejemplo si yo quisiera ejecutar el comando 35dB y estoy en el modo normal tras escribir el primer 3 no ver nada en pantalla que indique que he iniciado la secuencia
59. artir de ahora se hable de activar cierta opci n hay que sobreentender que ello se hace mediante el comando set Por otra parte set ofrece dos usos peculiares Si escribimos set NombreOpci n amp se nos informar del valor por defecto de esa opci n y si escribimos set NombreOpci n se nos informar del valor actual de la misma Estas opciones son de varios tipos Algunas admiten valores num ricos otras alfab ticos y otras son booleanas es decir est n activadas o desactivadas En este ltimo caso Vim suele establecer dos opciones una para activar y otra con el mismo nombre precedido de no para desactivar Por ejemplo showmode y noshowmode En general en esta gu a cuando se habla de activar una opci n se hace referencia a estas ltimas que se activan simple mente escribiendo set seguido del nombre de la opci n a activar El comando options Para ver una lista de todas las opciones disponibles agrupadas por materias de tal manera que podamos modificarlas con fa cilidad hay que ejecutar el comando options Tras ello se abrir una ventana en la que podremos navegar por las distintas opciones y alterar su valor T ngase en cuenta que esos cambios s lo durar n hasta que se cierre la sesi n con Vim Cuando el programa se reinicie todo volver a su valor por defecto Para conseguir que la asignaci n de cierto valor a una opci n con creta sea persistente hay que hac
60. as fit reasonably on the actual cover and continue the rest onto adjacent pages If you publish or distribute Opaque copies of the Document numbering more than 100 you must either include a machine readable Transparent copy along with each Opa que copy or state in or with each Opaque copy a computer network location from which the general network using public has access to download using public standard network protocols a complete Transparent copy of the Document free of added material If you use the latter option you must take reasonably prudent steps when you begin distribution of Opaque copies in quantity to ensure that this Transparent copy will remain thus accessible 112 Cap tulo D Licencia GNU para Documentaci n Libre at the stated location until at least one year after the last time you distribute an Opaque copy directly or through your agents or retailers of that edition to the public It is requested but not required that you contact the authors of the Document well before redistributing any large number of copies to give them a chance to provide you with an updated version of the Document 4 MODIFICATIONS You may copy and distribute a Modified Version of the Document under the conditions of sections 2 and 3 above provided that you release the Modified Version under precisely this License with the Modified Version filling the role of the Document thus licensing distribution and modification of the Modif
61. aunque ya no sean los m s adecuados para la longitud de l nea establecida El comando gq soluciona este problema Se trata de un comando de los que requieren un mbito de actuaci n es decir no produce efecto inmediato sino que espera a que indiquemos un objeto de texto o un movimiento del cursor y se aplicar a ese mbito As por ejemplo gqG reformatear los saltos de l nea desde la posici n del cursor hasta el final del documento y gq3ap reajustar los saltos de l nea de todo el p rrafo actual y de los dos pr ximos mientras que gggqG reajustar los saltos de l nea en todo el documento 5 1 4 Alineaci n de texto En Vim como en cualquier editor de texto por defecto el texto se alinea a la izquierda No obstante podemos centrarlo o alinearlo a la derecha Para centrarlo Cap tulo 5 Gesti n de l neas sangrados y tabuladores el comando es rango center anchural donde rango significa las l neas que ser n afectadas por defecto s lo la l nea actual y anchura es el tama o de la l nea que se usar para centrar Si no se indica se asume que la l nea es de 80 caracteres o del valor que se haya asignado a la opci n textwidth Para alinear a la derecha se usa el comando right que funciona exactamente igual Asimismo existe el comando left si bien ste no recibe un argumento con la anchura de la l nea aunque s puede recibir un argumento con el tama o del sang
62. bi n copia toda la l nea 4 2 3 Uso del porta papeles Hay sistemas que para facilitar la comunicaci n y el intercambio de datos entre distintas aplicaciones definen una zona de memoria a la que llaman porta papeles de tal manera que las operaciones de cortar y copiar env an datos al porta papeles y las operaciones de pegar copian datos del porta papeles Vim en sus operaciones de cortar copiar y pegar no utiliza el porta papeles del sistema sino su propio buffer de memoria No obstante el comando pre cediendo a los comandos p P O y fuerza a que se use el porta papeles del sistema As el comando yy enviar una l nea completa al porta papeles y p pegar el contenido del porta papeles en nuestro documento 4 2 4 Uso de registros 4 2 4 1 Registros en general Al cortar copiar y pegar se usa una sola zona de memoria a la que podemos llamar memoria de intercambio Cada vez que borramos o copiamos un nuevo texto el contenido de la memoria de intercambio es sustituido por lo que perdemos el texto que anteriormente estuviera almacenado Pero si necesitamos zonas de memoria distintas para mantener en ellas textos diferentes podemos usar registros Para usar un registro simplemente hay que escribir el comando seguido de la letra asignada al registro de que se trate inmediatamente antes del comando que normalmente enviar a un bloque de texto a la memoria de recuperaci n o pegar a
63. ble textwdith a un valor distinto de cero A esta variable tambi n se puede hacer referencia mediante el nombre tw Cuando textwidth tiene un valor distinto de cero conforme vamos escribien do Vim va comprobando la anchura de la l nea y si la anchura m xima autorizada es superada se retroceder hasta el ltimo espacio en blanco o tabulador y en su lugar se insertar un verdadero salto de l nea Esto no se har hasta que se haya terminado de teclear la palabra que haya superado la longitud de l nea autorizada set tw 75 hace que el ancho de l nea sea de 75 lo que significa que conforme vamos escri biendo cuando la l nea ha superado esa anchura Vim ir insertando en el lugar adecuado para no partir por la mitad a una palabra los oportunos saltos de l nea Si ejecutamos set tw no seguido de ning n argumento se nos informar del ancho de l nea activo 5 1 3 Reformateo de l neas el comando gq Vim es un editor de textos pero no un procesador de textos Una de las princi pales diferencias entre ambos est en que en estos ltimos conforme vamos escri biendo todo el texto posterior se va reajustando de acuerdo con las reglas generales de formato del texto En un editor de textos por el contrario cuando escribimos texto el nico reajuste se produce en la l nea escrita Eso significa que si despu s de escrito un p rrafo lo modificamos los saltos de l nea se dejar n donde estaban
64. borrar es d por lo tanto dd borra toda la l nea el comando general para copiar texto es y por lo tanto yy copia toda la l nea etc No obstante esta regla no funciona con todos los comandos y no siempre un comando duplicado act a sobre la l nea Y en cuanto a los comandos de l nea de comandos es de inter s saber que Abreviaturas Todos los comandos poseen una abreviatura de una o dos letras a veces incluso hay dos abreviaturas siendo indistinto el que el comando sea llamado por el nombre completo o por la abreviatura En esta gu a a veces se pone la abreviatura y a veces no Para conocer todos los nombres posibles de un comando lo mejor es pedir ayuda sobre l mediante help NombreComando El comando set y las opciones de Vim De entre los comandos de l nea de comandos hay uno especialmente importante Se trata del comando set Este comando se usa para fijar las distintas opciones de Vim 19 Cap tulo 2 Las nociones fundamentales de Vim Existen ciertas opciones que afectan al modo en que Vim se comportar Es tas se activan y desactivan mediante el comando set seguido del nombre de la opci n de que se trate Por ejemplo set showmode que como ya hemos visto sirve para activar la utilidad consistente en informarnos de en qu modo estamos Pues bien todo el funcionamiento de Vim depende de estas opciones que se activan con el comando set En consecuencia cuando a p
65. cambios Cualquiera de los cambios en el texto que se han visto incluida la escritura de nuevo texto puede ser deshecho rehecho y repetido Deshacer Significa que se anula el cambio realizado y se vuelve a la situaci n anterior a l Los comandos para ello son u y U El primero deshace el ltimo cambio el segundo deshace todos los cambios que se han producido en la l nea actual Al deshacer un cambio este es anulado es como si nunca se hubiera hecho por lo que el cambio que se hubiera hecho antes que el cambio que acabamos de deshacer pasa a ser el ltimo cambio el cual podr ser tambi n deshe cho si volvemos a pulsar u y as podremos ir deshaciendo por orden inverso todos nuestros cambios Rehacer Rehacer un cambio equivale a deshacer el hecho de haberlo deshecho Es decir el cambio que deshicimos vuelve a producirse Para ello el coman do es CTRL R Repetir Repetir un cambio equivale a volver a realizar la misma acci n en otro lugar del documento El comando para esta potente utilidad es el pun to que act a sobre todos los cambios hechos en el documento salvo los realizados con los comandos u U y CTRL R A los efectos de estos comandos se considera que un acto de edici n es La ejecuci n de un comando que produce una alteraci n en el texto La inserci n de un texto se considera consecuencia de los comandos que activan el modo de inserci n y por lo tanto al deshac
66. capacidad que empieza por un signo seguido de varios guiones y el texto de la primera l nea del pliegue para que nos ayude a saber qu es lo que hay bajo l Una vez creado el pliegue para abrirlo se usa el comando zo y para cerrarlo de nuevo zc Para borrar el pliegue se usa zd o open c close y d delete Tambi n se abrir el pliegue si estando el cursor sobre l se pulsa una tecla que mueva el cursor en sentido horizontal o se intenta escribir algo sobre la l nea aunque en realidad el qu movimientos del cursor o acciones abren autom tica mente los pliegues est controlado por la opci n foldopen Su valor por defecto es hor lo que significa que los movimientos horizontales del cursor abren el plie gue Puede tener otros valores como all cualquier acci n abre el pliegue block inserci n de llaves par ntesis y corchetes insert cualquier comando en el modo de inserci n jump saltos mediante G gg etc mark saltos a una marca percent saltos con el comando search b squedas etc tambi n es posible combinar varios valores separ ndolos por comas Asimismo la opci n foldclose controla las acciones que provocan el cierre de los pliegues el valor all provocar que los pliegues se cierren autom ticamente en cuanto el cursor salga de ellos Para abrir de golpe todos los pliegues del buffer se usa zr y para cerrarlos zm aun
67. ccionado como un recuadro tal y como se muestra en el siguiente diagrama en el que he se alado los v rtices del recuadro con las letras A B C y D Diagramal jpg el comando o mover el cursor a lo largo de las l neas A gt D y CB mien tras que 0 lo mover por A B y por C lt gt D dependiendo en cada caso de donde est el cursor cuando el comando sea ejecutado Y as por ejemplo estando el cursor en A o lo llevar a D pero 0 lo llevar a B En suma la combinaci n de o y 0 permite llevar el cursor a cualquiera de los cuatro v rtices El modo visual se mantendr hasta que 1 Se pulse la tecla ESC 2 Se pulse la tecla con la que se inici el modo visual 3 Se ejecute alg n comando que afecte al texto seleccionado Este comando puede ser un comando normal o un comando espec fico para el modo visual V ase la secci n 7 1 p gina 63 Si tras la ejecuci n del comando pul samos gv volver a seleccionarse autom ticamente el mismo texto suponiendo que aun exista En fin estando activo el modo visual autom ticamente se inserta la marca lt en el lugar donde empieza la selecci n y la marca gt en el lugar donde esta acaba Esas marcas se pueden usar para la indicaci n manual de rangos V ase el pr ximo ep grafe y en el pr ximo cap tulo lo relativo a las marcas 9Es decir v V o CTRL V Si habi ndose iniciado el modo vi
68. ciones incluyen Vim y en varias de ellas este es el editor por defecto 1 2 Las versiones de Vim Como cualquier otra aplicaci n para Unix Vim admite numerosas opciones en la l nea de comandos y varias de estas opciones hacen que Vim trabaje de cierta manera as podemos hacer que Vim se active en el modo de compatibilidad con Vi o en el modo de s lo lectura o en modo gr fico etc Es corriente que para alguna de estas opciones se escriban scripts que se ocupen de arrancar Vim con tal opci n activada Esos seripts funcionan como co mandos aut nomos As que el resultado final es que Vim puede ser llamado con muchos comandos Seg n la p gina Man de Vim los siguientes comandos activan a Vim con alguna de sus opciones concretas vim ex view gvim gview evim eview rvim rview rgvim rgview Y adem s al menos en Li nux el propio Vi casi nunca se instala sino que al ejecutarlo se activa Vim con el modo de compatibilidad con Vi y a veces ni eso se activa directamente Vim Adem s con KDE se instala kvim versi n gr fica para KDE En la mayor parte de estos casos m s que de versiones deber amos hablar de modos de arrancar Vim Posiblemente el nico de estos supuestos en los que podemos hablar de verdadera versi n sea la versi n gr fica que puede tener distin tos nombres seg n el contexto y nuestra instalaci n
69. clarar si queremos terminar Vim grabando los cambios o sin grabarlos Para ello podemos teclear cualquiera de las siguientes tres cosas q Salir de Vim sin guardar los cambios Z Salir de Vim sin guardar los cambios wq Guardar los cambios y terminar ZZ Guardar los cambios y terminar Se ver que los dos primeros hacen lo mismo y los dos ltimos tambi n Se trata pues de dos comandos que tienen cada uno de ellos dos versiones una fun ciona como comando de l nea de comandos y la otra como comando de efecto inmediato V ase m s adelante la distinci n entre ambos tipos de comandos Para lo que ahora interesa los comandos que empiezan por no se ejecutan hasta que se pulsa INTRO Los otros se ejecutan inmediatamente De momento vamos a teclear q y si al escribirlo vemos que se escribe en un lugar distinto de la ltima l nea pulsamos ESC y volvemos a escribirlo En seguida se explicar lo que eso significa 1 4 Obtenci n de ayuda La ayuda de Vim es muy extensa y detallada aunque desgraciadamente est en ingl s En espa ol podemos encontrar un tutorial con los comandos m s b sicos que se inicia ejecutando desde nuestra shell el comando vimtutor seguido de las iniciales del idioma deseado Si escribimos s lo vimtutor se abrir el tutorial en el idioma por defecto de nuestro sistema Adem s del tutorial el comando help que tambi n se activa pulsando F1 muestra la pantalla general de ayuda c
70. con ficheros En estos casos Vim supone que queremos editar todos los ficheros indicados por el orden en el que han sido cargados de manera que podemos ir activando sucesivamente los distintos buffers Inicialmente estar activo el correspondiente al primer fichero Para pasar de un buffer a otro disponemos de las siguientes rdenes next Activa el pr ximo fichero previous Activa el fichero anterior first Activa el primer fichero de la lista last Activa el ltimo fichero de la lista Todas estas rdenes exigen que el buffer actual no tenga cambios pendientes de guardar en disco En caso contrario hay que grabarlos o expl citamente descar tarlos escribiendo al final del nombre del comando Para next y previous hay una forma de la orden que empieza con w wnext y wprevious que significa grabar cambios del buffer actual y pasar al siguiente o al anterior buf fer Tambi n podemos activar la opci n autowrite para que autom ticamente se graben los cambios al saltar a un fichero distinto Asimismo si queremos saltar m s de un fichero podemos escribir el n mero de ficheros a saltar entre los dos puntos y el comando next o previous As 3next saltar al tercer fichero contando desde el actual Cuando circulando entre los distintos ficheros regresamos a uno en el que ya estuvimos la marca representa el lugar en el que esta el cursor cuando lo aban donamos
71. cuidado pues existen numerosos scripts pa ra Vim que asumen que las sustituciones no ser n globales si no se indica as y el alterar ese funcionamiento puede llevar a que esos scripts funcionen defectuosamente p Print Hace que se impriman aparte las l neas que sean cambiadas por el comando c Confirmar Hace que las sustituciones no sean autom ticas sino que antes de llevarlas a cabo se solicite confirmaci n del usuario En este caso ante cada aparici n del texto se nos preguntar si queremos sustituirla a lo que podremos contestar con cualquiera de los siguientes caracteres TM e y Procede a la sustituci n yes Cs e n No sustituye y salta a la siguiente ocurrencia no 6699 e a Sustituye todas las ocurrencias sin volver a preguntar como si hubi ramos anulado el indicador c all 6699 e q Abandona la operaci n en este punto quit e Realiza el cambio y abandona la operaci n last e CTRL E Hace scroll de la pantalla una l nea hacia arriba para ver mejor el contexto de la l nea donde se har el cambio e CTRL Y Hace scroll de la pantalla una l nea hacia abajo para ver mejor el contexto de la l nea donde se har el cambio 4 4 Los comandos global y normal El comando global que se puede usar como g es uno de los m s potentes de Vim Su formato es muy parecido al de la sustituci n rango global
72. da secci n ponemos el mismo texto seguido de un 2 en la anterior a la subsecci n igual pero con un 3 conseguiremos un texto totalmente estructurado Podemos adem s crear abreviaturas de Vim para escribir las marcas syntax En este caso el plegado se ajustar a la sintaxis de un determinado tipo de documentos o lenguaje de programaci n o lenguaje de marcas Pero para que esto funcione es preciso que se haya cargado previamente un plugin que permita a Vim reconocer dicha sintaxis no solo desde el punto de vista de su coloreado sino tambi n desde el punto de vista estructural cosa que no hacen todos los ficheros de reconocimiento de sintaxis de Vim expr Es muy parecido al m todo de la indentaci n pero en lugar por niveles de sangrado se atiende a una expresi n almacenada en la opci n foldexp Claro est que para escribir la expresi n hay que saber algo del lenguaje de scripts de Vim cosa que no se explica en esta gu a cosa que no se explica en esta gu a diff Este es el m todo que utiliza vimdiff en una comparaci n entre dos ficheros se pliegan aquellas l neas que est n igual en ambos Parte IV Otros aspectos de Vim Cap tulo 11 Utilidades adicionales 11 1 Recuperaci n despu s de una ca da del sistema 11 1 1 Ficheros swap de Vim Si mientras est bamos trabajando se produce una ca da del sistema cabe la posibilidad normalmente perderemos todo el trabajo realizado desde la ltima vez que el buf
73. dab Borrar unos par ntesis con su contenido dib Borrar el contenido de unos par ntesis dejando los par ntesis daB Borrar unas llaves con su contenido diB Borrar el contenido de unas llaves dejando las llaves dw Borrar hasta pr ximo principio de palabra dW Borrar hasta pr ximo principio de palabra delimitado por espacios en blanco db Borrar hasta anterior principio de palabra dB Borrar hasta anterior principio de palabra delimitado por espacios en blanco de Borrar hasta pr ximo fin de palabra dE Borrar hasta pr ximo fin de palabra delimitado por espacios en blanco dge Borrar hasta anterior fin de palabra dgE Borrar hasta anterior fin de palabra delimitado por espacios en blanco d Borrar hasta el principio de la frase d Borrar hasta el final de la frase d Borrar hasta el principio del p rrafo d Borrar hasta el final del parrafo 105 Cap tulo B Un ejemplo de todos los mbitos posibles d Borrar hasta la llave que abre el bloque actual de llaves dl Borrar hasta la llave que cierra el bloque actual de llaves d Borrar hasta el par ntesis que abre el bloque actual de par ntesis d Borrar hasta el par ntesis que cierra el bloque actual de par ntesis d Borrar hasta el inicio de la marca de comentarios d Borrar hasta el final de la marca de comentarios d Borrar hasta el car cter que se emparej
74. dad hay que establecer la opci n nohl search esta ltima adem s de una opci n es un comando de l nea de co mandos la diferencia entre set nohlsearch y nohlsearch est en que en el primer caso se desactiva la iluminaci n de resultados a partir de ahora los resultados de las b squedas no se iluminar n Pero si se ejecuta el comando el efecto es s lo el de que desparezcan la iluminaci n actual correspondiente a la ltima b squeda hecha pero como la utilidad de ilu minaci n sigue activa la pr xima b squeda volver a producir iluminaci n de resultados B squeda incremental Para conseguir que la b squeda se vaya efectuando con forme vamos tecleando el texto a buscar que es una de las cosas de Emacs que a m m s me gustan hay que activar la opci n incsearch mediante el comando set incsearch El efecto de esta opci n es el de ir mostrando en pantalla la primera aparici n del texto tecleado Pero el cursor no llega a moverse hasta que pulsamos la tecla INTRO B squeda circular Si no queremos que la b squeda contin e despu s de haber llegado al final del documento o al principio debemos activar la opci n PE y ae Cap tulo 3 Comandos para el movimiento del cursor nowrapscan para volver al comportamiento de Vim por defecto hay que activar rawscan Desplazamientos Por defecto la b squeda deja el cursor al principio del texto buscado Podemos no obstante indicar
75. de teclado necesaria para ejecutar un comando Esto tiene el inconve niente de que si algo nos distrae mientras estamos tecleando el comando podemos olvidar qu parte hemos tecleado ya Lo mejor en estos casos es pulsar ESC para cancelar la introducci n del comando Aunque tambi n podemos establecer la variable showcmd mediante el co mando set showcmd cuyo efecto es el de hacer eco de los comandos conforme se van tecleando en la l nea inferior de la pantalla Para desactivar de nuevo esta opci n basta con ejecutar el comando set noshowcmd De todas maneras la mayor a de estos comandos constan de un solo car cter y algunos constan de dos caracteres Ello sin contar claro es los posibles argumentos num rico y de mbito que pueden hacer que un comando completo llegue a tener hasta seis caracteres si bien eso no es corriente Otra cosa distinta es que en los manuales de Vim y en los foros de Internet los usuarios de la aplicaci n tienen la costumbre de transcribir juntas todas las letras que hay que pulsar para realizar varios comandos Por ejemplo si yo digo que hay que pulsar gg 12Gsort en una misma expresi n estoy transcribiendo varias acciones diferentes pero al expresarme as es posible que asuste a alguien respecto de la facilidad de uso de Vim En cuanto a la distinci n entre comandos con mbito y comandos sin mbito v ase la secci n 2 3 p gina 21 2 2 2 Comandos de l nea de comandos J
76. de visualizaci n actual como vis ta n mero 3 que podremos rescatar con loadview 3 Estas vistas del documento son v lidas s lo mientras no se altere su n mero de l neas 10 2 3 M todos de plegado Adem s de insertar pliegues manuales podemos hacer que se inserten autom ticamente los pliegues en ciertos lugares En tales casos se habla de m todos de plegado Para que estos funcionen el documento debe ajustarse a las convenciones de sintaxis adecuadas para cada m todo Los m todos de plegado se establecen dando valor a la opci n foldmethod Los valores admisibles para esta opci n son manual Es el m todo que ya hemos visto y el sistema por defecto Los pliegues se crean individualmente mediante zf indent El plegado se ajustar a los niveles de sangrado marker El plegado se indica mediante marcas en el texto La opci n foldmar ker indica qu texto se considerar como marca para crear un pliegue Hay que indicar el texto que se ala el inicio del pliegue y el que se ala su final Si en el documento tras la marca de inicio de pliegue escribimos un n me ro ser tomado como indicador del nivel del pliegue Podr amos as por FO y ae Cap tulo 10 Comandos para la visualizaci n ejemplo se alar en un documento IATEX un pliegue por marcas e indicando como texto de la marca en tal caso si en la l nea anterior a cada cap tulo ponemos ese texto en la l nea anterior a ca
77. dem s siendo c digo abierto las distintas distribuciones de Linux pueden introducir peque as modificaciones o mejoras o escribir un script de inicializaci n m s o menos complejo Yo no me he ocupado de investigar esos aspectos Es decir lo que he escrito se basa en Vim tal y como se instal en mi sistema Lo que no constituye por supuesto una cr tica Al rev s gracias a ese exceso de palabras se entiende todo bastante bien Lo que ocurre es que el poner muchos ejemplos viene bien s lo la primera vez que se lee algo despu s ya hemos entendido el concepto y s lo nos interesa recordar c mo hab a que hacerlo es en esta fase en la que puede hablarse de exceso de palabras 7 Cap tulo 1 Ideas b sicas sobre Vim 1 1 Qu es Vim Vim es uno de los editores de texto m s completos que existen Es extremada mente eficiente y posibilita el m ximo rendimiento con el m nimo esfuerzo Est espec ficamente dise ado para reducir el n mero de pulsaciones necesarias para editar un documento as como el tiempo que se tarda para realizarlas Sus coman dos de teclado est n pensados teniendo en cuenta incluso la posici n de las teclas en relaci n con la mano del mecan grafo para gente que teclee a la manera orto doxa con todos los dedos de la mano Dispone adem s de cientos de funciones de ayuda para la escritura de un tipo concreto de documentos programas de orde nador Aunque tambi n es bueno para la escritura de larg
78. den con los coman dos para el movimiento b sico del cursor y de hecho tambi n funciona CTRL W seguido de un movimiento de flecha del cursor En los dos ltimos la noci n de primera y ltima ventana depende del orden en el que fueron creadas Por otra parte los mismos comandos de movimiento del cursor hjkl prece didos de CTRL W y con letras may sculas producen el efecto de desplazar la ventana Por ejemplo CTRL W K hace que la ventana actual se coloque en la posi ci n en la que antes estaba la ventana superior la cual pasar a ocupar la posici n que antes era ocupada por la ventana que se ha movido a paa Cap tulo 9 Ventanas 9 3 Ajustar el tama o de las ventanas Por defecto al crear una ventana la ventana desde la que se ejecuta el coman do se divide en dos partes exactamente iguales Podemos no obstante facilitar al comando de creaci n de la ventana un argumento num rico que indique el n me ro de l neas o columnas de la nueva ventana Por ejemplo el comando 10split dividir la ventana actual en dos asignando a la nueva ventana un tama o de 10 l neas Una vez creada la ventana podemos aumentarle la altura el n mero de l neas con la secuencia CTRL W y reduc rsela con CTRL W Cada vez que se ejecu ta el comando la ventana crecer o decrecer en una l nea Pero tambi n podemos usar un prefijo num rico para provocar cambios de tama o m s r pidos y asi mismo pode
79. dora Es posible que debido a eso no funcione o que no me funcione a m por cualquier otra causa Cap tulo 8 Trabajo con ficheros Si en un momento dado queremos saber en qu fichero de la lista estamos con el comando args veremos una lista de los ficheros abiertos en la que el nombre del fichero actual se ver encerrado entre corchetes El comando args seguido de un argumento nos permite cambiar interactiva mente la lista de ficheros editada Es decir escribir args NuevaLista equivale a salir de Vim y volver a entrar usando NuevaLista como nueva lista de ficheros a editar 8 5 La lista de buffers Vim mantiene internamente una lista de los buffers que han estado activos du rante toda la sesi n aunque se refieran a ficheros que hayan sido ya guardados en el disco Esta lista ayuda a Vim a reabrir con rapidez los ficheros implicados y a recordar de ellos detalles tales como las marcas o la posici n del cursor Es tambi n gracias a esta lista que los saltos mediante CTRL O y CTRL I permiten cambiar el buffer activo Los buffers de la lista pueden encontrarse en tres situaciones activos los que se est n mostrando en alguna ventana ocultos los que no se ven pero aun es t n cargados en memoria e inactivos los que ya se descargaron de la memoria pero aun se recuerdan cosas sobre ellos Para ver la lista de buffers pueden usar se dos comandos buffers y 1s En ambos casos los buffers de la lista
80. dos para trabajar con texto estructurado mediante niveles de sangrado Primer nivel Segundo nivel Tercer nivel Segunda entrada de segundo nivel Segunda entrada de primer nivel El sangrado de cada l nea marca su posici n jer rquica Con el comando gt aumentamos el nivel de sangrado y con el comando lt lo reducimos La cantidad de espacios que se usar n para cada nivel de sangrado viene marcada por el valor de la opci n shiftwidth 7 1 3 El modo de selecci n El modo de selecci n es muy parecido al modo visual En l tambi n se va marcando una porci n de texto que se ver afectado por el pr ximo comando La diferencia est en que el pr ximo comando puede ser exclusivamente borrar el texto seleccionado con las teclas Retro o Supr o insertar texto en sustituci n del seleccionado En realidad este modo se parece m s a c mo funciona la selecci n de texto en la mayor a de las aplicaciones de edici n Este modo se puede arrancar con los siguientes comandos 66 799 gh Inicia el modo de selecci n car cter a car cter equivale a v para el modo visual 64 Cap tulo 7 Manipulaci n del texto en los modos visual y de inserci n gH Inicia el modo de selecci n l nea a l nea equivale a V para el modo visual gCTRL H Inicia el modo de selecci n por bloques equivale a CTRL V en el modo visual En este modo el texto seleccionado se borra pulsando Supr Retro y CTRL H Cualqui
81. e seguir la b squeda por el principio o por el final y solo se detendr cuando se llegue al punto donde empez en cuyo caso es claro que el texto buscado no est en el documento Una vez localizada la primera aparici n del texto buscado los comandos n y N nos permiten localizar las pr ximas apariciones n busca la pr xima apari ci n en el sentido en el que se hizo la b squeda original N invierte dicho sentido es decir si la b squeda se realiz con el comando n busca la pr xima apari ci n hacia delante y N busca la anterior aparici n Pero si la b squeda se realiz con estos comandos funcionan al rev s Por ltimo n y N admiten argumentos num ricos Configuraci n de ciertas caracter sticas de las b squedas En relaci n con las b squedas hay que tener en cuenta las siguientes cuestiones May sculas y min sculas El que las b squedas sean o no sensibles a la dife rencia entre may sculas y min sculas depende de si est activada la opci n ignorecase o la de noignorecase Una u otra se activan mediante el co Cap tulo 3 Comandos para el movimiento del cursor mando set opci n Por defecto en Vim est activado noignorecase lo que significa que las b squedas diferencia entre may sculas y min sculas Entre ignorecase y noignorecase se encuentra ignorecase smartcase en este ltimo caso la b squeda s
82. e con el que hay bajo el cursor par ntesis llaves o corchetes dl Borrar car cter bajo el cursor dh Borrar car cter ante el cursor dk Borrar hasta l nea superior dj Borrar hasta l nea inferior d Borrar hasta final de l nea do Borrar hasta principio de linea d Borrar hasta primer car cter de l nea dxG Borrar hasta la l nea n x dx Borrar hasta l nea que suponga el x indicado dgg Borrar hasta la primera l nea dG Borrar hasta la ltima l nea dH Borrar hasta la primera l nea de la pantalla dM Borrar hasta la l nea central de la pantalla dL Borrar hasta la ltima l nea de la pantalla dg0 Borrar hasta primer principio visible de la l nea de Borrar hasta primer car cter de la l nea visible y no en blanco dg Borrar hasta ltimo car cter visible de la l nea dgk Borrar hasta l nea superior visible no real dgj Borrar hasta linea inferior visible no real dfx Borrar hasta el car cter x inclu do dtx Borrar hasta el car cter anterior a x dFx Borrar hacia atr s hasta el car cter x inclu do dTx Borrar hacia atr s hasta el car cter anterior a x dix Borrar hasta la marca x d Borrar hasta la posici n del cursor antes del ltimo salto d Borrar hasta la posici n del cursor la ltima vez que se edit el fichero d Borrar hasta el lugar donde empez el ltimo cambio d Borrar hasta el lugar donde termin el ltimo cambio En total 57 posibilidades distintas Si a ello a adimos que en la mayor
83. e permission to use their names for publicity for or to assert or imply endorsement of any Modified Version 5 COMBINING DOCUMENTS You may combine the Document with other documents released under this License under the terms defined in section 4 above for modified versions provided that you include in the combination all of the Invariant Sections of all of the original documents unmodi fied and list them all as Invariant Sections of your combined work in its license notice and that you preserve all their Warranty Disclaimers The combined work need only contain one copy of this License and multiple identical Invariant Sections may be replaced with a single copy If there are multiple Invariant Sec tions with the same name but different contents make the title of each such section unique by adding at the end of it in parentheses the name of the original author or publisher of that section if known or else a unique number Make the same adjustment to the section titles in the list of Invariant Sections in the license notice of the combined work In the combination you must combine any sections Entitled History in the various original documents forming one section Entitled History likewise combine any sections 114 Cap tulo D Licencia GNU para Documentaci n Libre Entitled Acknowledgements and any sections Entitled Dedications You must delete all sections Entitled Endorsements 6 COLLECTIONS OF DOCUMENTS
84. e reemplazo La tecla ESC funciona en cualquier modo que estemos aunque si ya estamos en el modo normal es posible que el sistema emita un pitido La tecla INS tambi n pero como es l gico las teclas i v gh y R s lo sirven para activar modos si estamos en el modo normal Pulsar i por ejemplo desde los modos de inserci n o de reemplazo escribe una i en el documento y hacerlo desde el modo visual no produce ning n efecto Por otra parte la tecla i es la normal para activar el modo de inserci n pero no la nica Hay otras teclas que lo activan y la diferencia est en d nde se coloca el cursor en cada caso es decir donde empezaremos a escribir i El cursor se deja donde estaba I El cursor se lleva al principio de la l nea actual a El cursor se desplaza un car cter a la derecha A El cursor se desplaza hasta el final de la l nea actual o Se inserta una l nea en blanco bajo la actual y el cursor es llevado al princi pio de la misma O Se inserta una l nea en blanco por encima de la actual y el cursor es llevado al principio de la misma Adem s de estos comandos los comandos c C s y S activan el modo de inserci n pero de ellos se hablar a prop sito de los comandos para la manipu laci n del texto en la secci n 4 1 p gina 43 a SE Cap tulo 2 Las nociones fundamentales de Vim 2 1 4 Saber en qu modo estamos Una de las cosas m s molesta
85. e tabulador Tienen la ventaja de que el fichero se ver igual cualquiera que sea el programa que se utilice para verlo siempre y cuando por supuesto se emplee para ello una fuente de ancho fijo cosa que hacen todos los editores de texto frente a los procesadores de texto 5 2 2 Variables de Vim que controlan el tabulador En Vim los tabuladores est n controlados b sicamente por las siguientes op ciones tabstop Controla el n mero de caracteres que inserta el tabulador Se refiere a los saltos duros de tabulador es decir al verdadero tabulador El consejo de Vim es que esta opci n se deje siempre en su valor por defecto que es 8 el de las antiguas m quinas de escribir eso garantiza que veamos bien lo que se haya escrito en otros editores siempre y cuando claro est esos otros editores hayan dejado tambi n a tabstop en su valor por defecto En todo caso dado que el c mo se vea el documento depende del valor de tabstop con el que se escribi salvo que s lo se usen saltos blandos este valor es un gran candidato a convertirse en variable de fichero v ase el cap tulo sobre la personalizaci n de Vim con lo que se garantiza que el fichero siempre se ver tal y como fue dise ado o al menos se ver as siempre que se abra con Vim softtabstop Esta es la opci n que Vim sugiere que cambiemos en el caso de que no nos guste el valor por defecto para tabstop Cuando esta opci n tiene un valor distinto que tabstop
86. ed Endorsements r to conflict in title with any Invariant Section O Preserve any Warranty Disclaimers If the Modified Version includes new front matter sections or appendices that qualify as Secondary Sections and contain no material copied from the Document you may at your option designate some or all of these sections as invariant To do this add their titles to the list of Invariant Sections in the Modified Version s license notice These titles must be distinct from any other section titles You may add a section Entitled Endorsements provided it contains nothing but en dorsements of your Modified Version by various parties for example statements of peer review or that the text has been approved by an organization as the authoritative definition of a standard You may add a passage of up to five words as a Front Cover Text and a passage of up to 25 words as a Back Cover Text to the end of the list of Cover Texts in the Modified Version Only one passage of Front Cover Text and one of Back Cover Text may be added by or through arrangements made by any one entity If the Document already includes a cover text for the same cover previously added by you or by arrangement made by the same entity you are acting on behalf of you may not add another but you may replace the old one on explicit permission from the previous publisher that added the old one The author s and publisher s of the Document do not by this License giv
87. edit for their work while not being considered responsible for modifications made by others This License is a kind of copyleft which means that derivative works of the docu ment must themselves be free in the same sense It complements the GNU General Public License which is a copyleft license designed for free software We have designed this License in order to use it for manuals for free software because free software needs free documentation a free program should come with manuals provi ding the same freedoms that the software does But this License is not limited to software manuals it can be used for any textual work regardless of subject matter or whether it 1s published as a printed book We recommend this License principally for works whose purpose is instruction or reference 1 APPLICABILITY AND DEFINITIONS 110 Cap tulo D Licencia GNU para Documentaci n Libre This License applies to any manual or other work in any medium that contains a notice placed by the copyright holder saying it can be distributed under the terms of this License Such a notice grants a world wide royalty free license unlimited in duration to use that work under the conditions stated herein The Document below refers to any such manual or work Any member of the public is a licensee and is addressed as zou You accept the license if you copy modify or distribute the work in a way requiring permission under copyright law A Modified
88. elecci n del men Las teclas de cambio que constituyen el m todo favorito de un editor tan potente como Emacs suponen que los comandos se asocian a pulsaciones que impliquen alguna tecla especial normalmente las teclas CTRL y Alt El sistema de los modos es el usado por Vim que por ello se denomina editor modal significa que el editor puede estar en dife rentes modos y seg n en qu modo se encuentre as se interpretar lo que el usuario teclee En Vim hay varios modos distintos Pero de ellos hay dos que son los verda deramente fundamentales y que no tienen equivalente en otros editores Los otros modos son secundarios y sus funcionalidades se podrian explicar de otra manera SComo ejemplo de editor basado en men s podr a citarse casi todos los editores para KDE o GNOME como Kate Kwrite etc En cuanto a Emacs y Vim no constituyen modelos totalmente puros En Emacs hay un men y hay tambi n un modo de comando aun as lo normal en l es actuar mediante teclas de cambio En Vim tambi n puede haber un men y tambi n se hace cierto uso de las teclas de cambio pero lo esencial en l son los distintos modos 13 Cap tulo 2 Las nociones fundamentales de Vim 2 1 1 Los modos fundamentales Estos son los llamados modos normal y de inserci n El modo normal es aquel en el que Vim se encuentra reci n arrancado y en el que se supone que debemos dejarlo cuando no estemos haciendo otra cosa por eso se llama normal
89. en min sculas como en la versi n en may scu las y la mayor a de las veces hay cierta relaci n entre los comandos que realiza la misma letra cuando est en min sculas y cuando est en may sculas La presente tabla resume esos comandos Las columnas de la tabla son Letra Comando en min sculas Comando en may sculas Letra Minusc Mayusc a insertar a la derecha cursor insertar en fin de l nea b ir a principio palabra anterior ir a principio palabra anterior blancos c cambiar cambiar hasta fin de l nea d borrar Borrar hasta fin de l nea e ir a fin palabra ir a fin palabra blancos f buscar car cter buscar car cter hacia atr s g comando general ir a l nea h ir a izquierda ir a primera l nea de la pantalla i insertar aqu insertar en principio de l nea j ir abajo suprimir salto l nea k ir arriba ejecutar aplicaci n l ir a derecha ir a ltima l nea de la pantalla m crear marca ir a l nea central de la pantalla n ir a pr xima ocurrencia ir a anterior ocurrencia o insertar en l nea inferior insertar en l nea superior p pegar texto pegar texto antes del cursor q grabar macro ir a modo de comandos T reemplazar car cter activar modo de reemplazo s sustituir e insertar borra l nea e insertar t ir a car cter ir a car cter hacia atr s u deshacer ltimo cambio deshacer cambios l nea v activar modo visual activar modo visua
90. er de un solo golpe de vista su estructura Por ejemplo en una novela podr amos plegar el contenido de cada cap tulos mostrando s lo el t tulo o en un programa podr amos plegar todas las funciones mostrando solo su nombre o su declaraci n Al plegar un documento las l neas siguen estando all Lo que ocurre es que no son mostradas hasta que as se indique Entre tanto podremos cortar y pegar la l nea mostrada y con ello cambiaremos de lugar todo el bloque de texto que se encuentra plegado a ella 10 2 1 Comandos para plegar 6699 Todos los comandos de plegado empiezan por la letra z esto es porque con mucha imaginaci n podemos ver como dicha letra es en s misma una l nea plega da El comando general para crear un pliegue es zf Este comando act a sobre el mbito que se le indique As por ejemplo zfap plegar todo el p rrafo Y si esta mos escribiendo una novela y queremos plegar todo un cap tulo deberemos colocar el cursor sobre el t tulo y pulsar un comando similar a zf n Cap tulo 1 eso har que el comando act e hasta el pr ximo movimiento del cursor el cual tendr lugar hasta que se encuentre el texto Cap tulo precedido de un salto de l nea en cuyo caso el cursor se detendr una l nea antes del texto buscado Tras este comando el texto plegado se ocultar y en su lugar se mostrar exclu sivamente una l nea en v deo inverso o en color resaltado si la terminal tiene tal
91. er otra tecla imprimible borrar el texto seleccionado activar el modo de inserci n y escribir lo que se haya tecleado La combinaci n CTRL o convertir el modo de selecci n en modo visual ex clusivamente para un comando tras el que se volver al modo de selecci n siempre que tras ejecutarlo siga habiendo texto seleccionado cosa que ocurrir si el coman do ejecutado era de movimiento del cursor Por el contrario CTRL G convierte el modo de selecci n en modo visual sin retorno es decir tras ejecutar un comando no se volver al modo de selecci n Asimismo estando en el modo visual CTRL G activar con la misma selec ci n el modo de selecci n 7 2 Comandos en el modo de Inserci n 7 2 1 Ejecutar comandos del modo normal desde el modo de inser ci n Normalmente estando en el modo de inserci n si queremos ejecutar alg n co mando hay que pasar al modo normal pulsando la tecla ESC No obstante podemos tambi n pulsar CTRL O y a continuaci n el comando en cuesti n con lo que no llegaremos a salir del modo de inserci n 7 2 2 Movimientos del cursor en el modo de inserci n Como es l gico en el modo de inserci n no funcionan los comandos hjkl ni en general todos los que consisten en alg n car cter imprimible ya que si estando en ese modo se pulsa la tecla correspondiente Vim entiende que lo que se quiere es incluir al car cter en el buffer Por lo tanto para mover el cursor en este modo habr q
92. er se deshar todo el texto insertado As imaginemos que yo activo el modo de inserci n pulsando i y me pongo a escribir de tal manera que de un tir n sin llegar a volver al modo normal o al modo visual escribo el Quijote Pues bien si luego pulso ESC para volver al modo normal y tras ello pulso u para eliminar el ltimo cambio borrar el Quijote pero si pulso para repetir el ltimo cambio repetir el Quijote entero 6l Cap tulo 6 Otros cambios Es decir en los comandos que activan el modo de inserci n todo lo que se inserte desde que dicho modo se activ hasta que se vuelva al modo normal se considera un solo cambio gt Cap tulo 7 Comandos para manipulaci n del texto en los modos visual y de inserci n 7 1 Modificaci n del texto desde el modo visual En el modo visual algunos comandos de modificaci n producen un efecto es pecial 7 1 1 Insertar el mismo texto en varias l neas En las selecciones por bloques iniciadas mediante CTRL V los comandos T A c y C producen el efecto de insertar un texto en todas las l neas seleccio nadas I lo inserta a la izquierda de la selecci n A a la derecha mientras que c y C sustituyen el texto seleccionado con el nuevo texto La diferencia entre c y C est en que la primera sustituye exclusivamente el texto seleccionado y la segunda sustituye en todas las l neas desde el borde
93. erlo en un fichero de configuraci n V ase la secci n 12 1 p gina 97 El historial de comandos Vim mantiene en un buffer de memoria independien te qu comandos de l nea de comandos han sido ejecutados desde que se inicio la sesi n Podemos navegar por ese historial de modo que podamos volver a ejecutar un comando sin necesidad de volver a escribirlo o volverlo a ejecutar con ligeras modificaciones escribiendo s lo las modificaciones Para acceder al historial de comandos hay que en primer lugar ejecutar el comando de tal modo que el cursor salte a la ltima l nea Ya sabemos que Vim estar esperando que escribamos el nombre de un comando si en lugar de ello pulsamos la tecla de flecha hacia arriba se mostrar el ltimo comando ejecutado A partir de ah con las flechas arriba y abajo podremos navegar por el historial de comandos Estando en un comando concreto po dremos editarlo y modificarlo HERE q we Cap tulo 2 Las nociones fundamentales de Vim Tambi n es posible saltar directamente a cierto comando Para ello antes de pulsar la flecha arriba por primera vez hay que escribir el principio del nombre del comando y luego pulsar la flecha arriba se mostrar la primera entrada del historial que coincida con el comando que se empez a escribir Por ejemplo si deseo reejecutar el comando set hlsearch que ejecut hace tiempo pulsando s y luego la flecha arriba conseguir que se mues tre no el lt
94. ers if the Document is in electronic form Otherwise they must appear on printed covers that bracket the whole aggregate 8 TRANSLATION Translation is considered a kind of modification so you may distribute translations of the Document under the terms of section 4 Replacing Invariant Sections with translations requires special permission from their copyright holders but you may include translations of some or all Invariant Sections in addition to the original versions of these Invariant Sections You may include a translation of this License and all the license notices in the Document and any Warranty Disclaimers provided that you also include the original En glish version of this License and the original versions of those notices and disclaimers In case of a disagreement between the translation and the original version of this License or a notice or disclaimer the original version will prevail If a section in the Document is Entitled Acknowledgements Dedications or His tory the requirement section 4 to Preserve its Title section 1 will typically require changing the actual title 9 TERMINATION You may not copy modify sublicense or distribute the Document except as expressly provided for under this License Any other attempt to copy modify sublicense or distribute the Document is void and will automatically terminate your rights under this License However parties who have received copies or rights from you under
95. erse sino aprovechando una separaci n de palabras Personalmente eso no me gusta pero admito que va en gustos Si lo que vemos nos enga a respecto de las verdaderas l neas de nuestro fichero ser dif cil que podamos controlarlas lo que es especialmente grave en un editor como Vim que posee numerosos comandos que act an sobre las l neas verdaderas Pero adem s si las l neas se parten ellas solas tendremos tendencia a reservar la tecla INTRO para los cambios de p rrafo y pensaremos que para cambiar de p rrafo basta con pulsar INTRO una sola vez cuando lo cierto es que tanto en Vim como en nume rosos editores de texto el p rrafo se define como un conjunto de l neas delimitadas por una l nea vac a o lo que es lo mismo que para cambiar de p rrafo hay que pulsar dos veces consecutivas la tecla INTRO En todo caso en Vim podemos elegir mediante la opci n wrap si hay que insertar saltos de l nea din micos o si s lo veremos una porci n de las l neas ex cesivamente anchas nowrap 52 Cap tulo 5 Gesti n de l neas sangrados y tabuladores 5 1 2 Inserci n autom tica de saltos de l nea Por defecto en Vim el salto de l nea hay que introducirlo expresamente pulsan do la tecla INTRO No obstante podemos conseguir que Vim se ocupe de intro ducir autom ticamente saltos de l nea dirigidos a asegurarse de que ninguna l nea tenga m s de cierto n mero de caracteres Para ello hay que ajustar la varia
96. esiones Vim o para un fichero concreto La primera se consigue mediante el fichero de configura ci n La segunda mediante los comandos de fichero 12 1 El fichero de personalizaci n de Vim Cada vez que Vim arranca lee un fichero llamado vimrc ubicado en el direc torio de instalaci n de Vim normalmente usr share vim y otro llamado vimrc Jj ubicado en el directorio personal del usuario El primero contiene la que podr a mos llamar configuraci n general de Vim para todos los usuarios del sistema y el segundo la configuraci n personal de Vim para cada usuario Estos ficheros son scripts de Vim es decir contienen comandos que son ejecu tados en el inicio de Vim En ellos podemos incluir cualquier comando ejecutable de l nea de comandos de Vim los que empiezan por los dos puntos aunque como es normal s lo se suelen incluir los comandos que afectan en general al compor tamiento de Vim y no los que act an sobre un buffer de edici n porque en el momento en el que estos comandos son le dos no hay ning n buffer activo T ngase en cuenta adem s que los dos puntos de los comandos de Vim son s lo para decirle a Vim que vamos a introducir un comando de l nea de comandos Por 7En sistemas Unix En sistemas Windows MS DOS o Mac OS este fichero puede tener otras denominaciones de las que aqu no me ocupo aunque el comando scriptnames nos puede ayudar a localizarlo porque produce un listado de l
97. estro terminal no soporta los colores a que s los soporta pero Vim no es capaz de reconocerlo o a que Vim no ha sido capaz de identificar la sintaxis de nuestro fichero En el segundo caso la soluci n pasa por fijar variables de entor no que dependen del sistema operativo En el tercer caso podemos usar en primer lugar el comando filetype on para activar el reconocimiento autom tico de ficheros Si tras ello Vim siguiera sin reconocer el fichero podr amos indic rselo expl citamente mediante el comando set filetype tipo donde tipo es alg n tipo de ficheros conocido por Vim 84 Cap tulo 10 Comandos para la visualizaci n Por s solo Vim reconoce unos pocos formatos pero pueden y suelen a ad r sele plugins de reconocimiento de formatos adicionales El comando filetype plugin on hace que se active el reconocimiento de formatos asociados a plugins Para ver qu tipos hay disponibles hay que mirar en el directorio usr share vim vim63 syntax 10 1 2 Ajuste de colores Una vez reconocida la sintaxis Vim pondr determinadas partes del texto con ciertos colores Aunque es posible modificar absolutamente todos los colores que se usan tal explicaci n superar a los l mites de esta gu a Por lo tanto me limitar a indicar las dos modificaciones b sicas en materia de colores Esquema de colores Vim dispone de varios esquemas de colores Con el coman do colorscheme podemos activar uno u otro Para ver los
98. fer fue guardado en disco Vim sin embargo ofrece la posibilidad de recuperar parte de ese trabajo a veces todo el trabajo Ello es posible porque Vim utiliza un fichero de intercambio propio en el que va almacenando los cambios producidos en el fichero Ese fichero es vaciado cuando guardamos los cambios en disco y borrado cuando abandonamos Vim Pero si la salida de Vim se produce abruptamente por una ca da del sistema el fichero seguir estando en su lugar por lo que podemos pedirle a Vim que intente reconstruir el fichero perdido Para ello se usa la opci n de l nea de comando r As el siguiente comando vim r Guia Vim tex har que Vim busque el fichero swap correspondiente a Guia Vim tex y si lo en cuentra intente reconstruir los cambios perdidos Finalmente Vim nos informar con un mensaje similar al siguiente Using swap file Guia Vim tex swp Original file documentos GuiaVim Guia Vim tex Recovery completed You should check if everything is OK You might want to write out this file under another name and run diff with the original fileto chec for changes Delete the swp file afterwards 90 Cap tulo 11 Utilidades adicionales Lo primero que conviene hacer en estos casos es guardar el buffer recuperado con otro nombre para evitar que se sobreescriba el fichero original y luego com pararlo con el fichero original Para ello Vimdiff es bastante til Si en el momento de la ca
99. frecer la ayu da sobre el modo normal As help i_CTRL H muestra la ayuda sobre el funcionamiento de la combinaci n de teclas CTRL H en el modo de in serci n Para pedir ayuda sobre teclado las teclas especiales se identifican por su nombre en ingl s entre signos lt gt Por ejemplo help lt Up gt nos da ayuda sobre el uso de la tecla flecha arriba y help i_ lt up gt nos da ayuda sobre el uso de la misma tecla en el modo de inserci n V ase el ap ndice C p gina 107 sobre el nombre en Vim de las teclas Una tarea Si conseguimos acertar con el nombre en ingl s de una tarea identificable obtendremos ayuda sobre como realizarla en Vim Por ejemplo help deleting 0 help searching nos indicar como borrar o c mo buscar Una opci n de la l nea de comandos Porque Vim como cualquier aplicaci n para Unix admite numerosas opciones en l nea de comandos Si queremos obtener ayuda detallada de ellas m s detallada que la existente en la p gina man de Vim este es el procedimiento Por ejemplo help t nos mostrar ayuda sobre la opci n t Una opci n interna de Vim En Vim las opciones se establecen mediante el comando set seguido del nombre de la opci n Por ejemplo set ruler activa el indicador de posici n en la l nea inferior help ruler nos ofrecer a la ayuda sobre esta opci n Para ver una lista de todas estas op ciones ejecute help option summary En ocasione
100. hombro mientras editamos algo Por ejemplo ggg G encriptar todo nuestro fichero de golpe y lo proteger de quien tenga acceso a nuestra pantalla Pero si realmente queremos preservar la confidencialidad de nuestros ficheros es preferible ejecutar el comando X que nos solicitar una clave la cual se usar para encriptar nuestro fichero cuando lo guardemos en disco Una vez encriptado siempre que intentemos abrirlo con Vim se nos solicitar la clave y s lo tras su introducci n el fichero ser correctamente desencriptado Un efecto similar al del comando X se obtiene arrancando Vim con la opci n de l nea de comandos x Al usar el encriptado de ficheros hay que tener en cuenta que el fichero swap de seguridad no se encripta nunca por lo que si Vim termina su ejecuci n anor malmente y no se borra el fichero swap cualquiera podr leer su contenido Tam poco se encripta el texto en memoria ni cuando se guarda con el comando write comando Cap tulo 6 Otros cambios La clave introducida mediante estos comandos se almacena en la opci n key por lo que mediante el comando set key podemos emular el funcionamiento de X D ndole alg n valor a key es como si hubi ramos ejecutado el comando cambiando su contenido cambiaremos la clave y borrando su contenido provo caremos que la pr xima vez que el fichero se guarde en disco sea desencriptado 6 6 Deshacer rehacer y repetir
101. i alg n lector ha instalado un Vim a pelo de tal manera que carece absolutamente de fichero de configuraci n 12 2 Variables de fichero Aunque en vimrc se establecen los valores generales de funcionamiento de Vim para un fichero concreto podemos establecer ciertos valores Ello se hace mediante una l nea que establezca tales valores Las caracter sticas de estas l neas son las siguientes Deben encontrarse entre las cinco l neas iniciales o finales del fichero Nor malmente se suele colocar la primera o la ltima Podemos alterar su po sici n posible cambiando el valor de la opci n modelines aunque para que este cambio tenga verdadero efecto hay que hacerlo en el fichero de configuraci n Por ejemplo set modelines 10 hace que la l nea con las variables de fichero sea buscada entre las diez primeras y las diez ltimas El comando set modeline no seguido de ning n valor desactiva la habili dad de Vim para leer estas l neas y ejecutarlas El formato de estas l neas es el siguiente texto vim set fopci n valor texto Donde 1 texto representa cualquier texto Puede ser una marca de comen tarios para el lenguaje en el que se encuentre el fichero Por ejemplo en programas para C habria que colocar al principio de la linea los caracteres para que el compilador de C la ignore y la trate como un comentario En programas de C habr a que colocar al principio
102. iante el operador detr s del comando que se descarten los cambios en el buffer a eliminar No tan dr stico como eliminar un buffer es descargarlo de memoria Para ello se usa el comando bunload que tiene la misma sintaxis que bdelete Al descargar de la memoria el buffer se mantiene en la lista pero pasa a ser un buffer inactivo por lo que cualquier ventana que estuviera edit ndolo se cierra 8 6 Otras operaciones con ficheros Adem s de los comandos examinados en Vim se dispone de los siguientes comandos adicionales para trabajar con ficheros rango read Fichero Inserta el contenido del fichero en la posici n del cursor Puede indicarse un rango de l neas a insertar Si como rango se facilita el valor 0 cero el fichero se insertar al principio del buffer que se est editando y no en la posici n del cursor argdo comando Ejecuta el comando que se escribe a continuaci n en todos los buffers activos Si se quiere incluir m s de un comando hay que separarlos por una barra vertical window comando Similar al anterior pero el comando se ejecuta exclusivamente en los buffers correspondientes a las ventanas abiertas ERES RE Cap tulo 9 Ventanas En Vim podemos dividir la pantalla en diferentes zonas llamadas ventanas de tal modo que en cada una de ellas se edite un fichero distinto o se muestren dos partes diferentes de un mismo fichero Asimismo en ocasiones el mismo Vim al ejecu
103. ias por ello aqu puede ser una buena idea desactivar el reconocimiento de sintaxis La misma utilidad la podemos activar desde Vim suponiendo que hayamos arrancado de modo normal y estemos editando un buffer concreto En tal caso el comando vertical diffsplit fichero provocar que fichero sea le do y mostrado en una ventana vertical junto a nuestro buffer actual marcando las dife rencias entre uno y otro Por ltimo si tenemos un fichero diff con las diferencias o un fichero patch podemos tras haber cargado el fichero original en un buffer ejecutar el comando vertical diffpatch fichero donde fichero es el fichero diff Esto provocar que al buffer asociado a nuestro fichero inicial se le aplique el parche aunque el fichero en s mismo considerado quedar inalterado hasta que decidamos guardar los cambios de nuestro buffer Esta es una forma c moda de ver los efectos de un parche antes de aplicarlo En este modo de funcionamiento est n activadas ciertas caracter sticas Los dos ficheros mostrados quedan vinculados de tal manera que al hacer scroll en uno de ellos o al mover el cursor hacia cierto lugar en el otro se mostrar la misma secci n Esto hace que los movimientos de cursor sean m s lentos por lo tanto puede interesarnos desactivar esta opci n ejecutando el comando set noscrollbind Podemos saltar directamente a las zonas en las que hay una diferencia entre ambos ficheros mediante los com
104. ied Version to whoever possesses a copy of it In addition you must do these things in the Modified Version A Use in the Title Page and on the covers if any a title distinct from that of the Document and from those of previous versions which should if there were any be listed in the History section of the Document You may use the same title as a previous version if the original publisher of that version gives permission B List on the Title Page as authors one or more persons or entities responsible for authorship of the modifications in the Modified Version together with at least five of the principal authors of the Document all of its principal authors if it has fewer than five unless they release you from this requirement C State on the Title page the name of the publisher of the Modified Version as the publisher D Preserve all the copyright notices of the Document E Add an appropriate copyright notice for your modifications adjacent to the other copyright notices F Include immediately after the copyright notices a license notice giving the public permission to use the Modified Version under the terms of this License in the form shown in the Addendum below G Preserve in that license notice the full lists of Invariant Sections and required Cover Texts given in the Document s license notice H Include an unaltered copy of this License I Preserve the section Entitled History Preserve its Title a
105. iendo pues claro lo que significan a e 1 resulta que los objetos de texto posibles son los siguientes diez objetos a aw Una palabra con delimitadores a iw Una palabra sin delimitadores as Una frase con delimitadores a is Una frase sin delimitadores a ap Un p rrafo con delimitadores a ip Un p rrafo sin delimitadores ab Unos par ntesis con todo el texto que contienen a ib El texto encerrado entre par ntesis a aB Unas llaves con todo el texto encerrado entre ellas a iB El texto encerrado entre llaves pero sin las llaves a E Cap tulo 2 Las nociones fundamentales de Vim En consecuencia tras teclear cualquiera de los comandos con mbito podremos escribir el nombre de uno de estos objetos para que el comando se le aplique Y as si el comando d es el de borrar daw borrar una palabra con su espacio en blanco mientras que diB borrar el contenido de los par ntesis dentro de los cuales est el cursor pero dejando los par ntesis propiamente dichos Asimismo se puede usar un prefijo num rico para el objeto de texto y as d4ap borrar cuatro p rrafos completos empezando por aquel donde se encuen tre el cursor 2 3 2 Seleccionar texto en Vim El modo visual Otra forma de delimitar el mbito de actuaci n de un comando es seleccionar manualmente una porci n de texto a la que se aplicar el comando Esto se hace mediante el modo llamado visual que eq
106. imo comando ejecutado sino el ltimo cuyo nombre empezaba 6699 por s Si queremos ver todo el historial de comandos hay que ejecutar el comando history Este mismo comando seguido de nos mostrar el historial de b squedas La funci n de autocompletado de la l nea de comandos Vim dispone de una funci n de autocompletado sensible al contexto Cuando estamos teclean do un comando o un nombre de fichero o el nombre de una opci n una vez escrita la primera o primeras letras la tecla TAB completar el nombre al primer comando fichero u opci n cuyo nombre coincida Pulsando sucesi vas veces la tecla TAB ira cambi ndose el nombre que se nos ofrece Si lo que queremos es ver cuantas posibilidades hay debemos pulsar CTRL D 2 3 Indicaci n del mbito en los comandos Entre los comandos de ejecuci n inmediata se distingue seg n sean comandos con mbito o sin mbito La ayuda de Vim llama a los primeros operadores Un comando sin mbito es el comando que se ejecuta inmediatamente Por ejemplo mover el cursor o insertar texto desde memoria o activar el modo de inserci n Pero hay comandos que lo que hacen lo pueden hacer sobre objetos distintos y en este caso adem s de teclear el nombre del comando hay que indicar sobre qu objeto queremos que el comando se ejecute Por ejemplo borrar Podemos querer borrar un car cter una palabra una l nea una frase un p rrafo Una vez que hemos int
107. ir 4 sort El comando Es similar a pero act a sobre la l nea actual por lo tanto no espera a que se le indique ning n rango As por ejemplo date reempla zar la l nea actual con la fecha del sistema El comando comando Este comando es como pero sin indicaci n de m bito Para conseguirlo hay que teclear los dos puntos antes que El efecto ser que el comando que a continuaci n se escriba ser ejecutado y su resul tado mostrado en pantalla El comando write lcomando Este comando primero graba el buffer y luego env a el fichero grabado como argumento al comando que se le indique mos trando a continuaci n en pantalla el resultado producido por dicho comando pero sin insertar dicho resultado en nuestro buffer Es muy parecido al an terior la diferencia est en que en el anterior no se enviaba nuestro buffer como argumento para el comando El comando read comando Este comando ejecuta una utilidad externa e in serta en nuestro buffer su salida Podemos indicar el n mero de l nea bajo el que se insertar la salida Si no decimos nada esta se insertar en la posici n del cursor La inserci n se producir tras la l nea indicada por lo que para insertar al principio del buffer hay que indicar como n mero de l nea el valor 0 As por ejemplo Oread 1s insertar la salida del comando 1s al principio del fichero El comando K Este
108. izquierdo de la selecci n hasta el final de l nea aunque esta no llegara tan lejos El procedimiento general es siempre el mismo Estando activado un bloque de texto hay que pulsar Comando texto lt Esc gt Donde comando es T A o c Al pulsarlos entraremos en el modo de inser ci n y aparentemente el texto se escribir exclusivamente en la primera l nea Pero al pulsar ESC el texto es copiado en todas las l neas que estaban seleccionadas salvo en el caso de que el texto escrito incluya un salto de l nea 63 Cap tulo 7 Manipulaci n del texto en los modos visual y de inserci n 7 1 2 Otros cambios en el modo visual En el modo visual con texto seleccionado los siguientes comandos producen el siguiente efecto Cambia el caso de todo el contenido de la selecci n las letras en may sculas pasan a min sculas y viceversa U Convierte a may sculas toda la selecci n u Convierte a min sculas toda la selecci n r Rellena toda la selecci n con el car cter que se pulse inmediatamente des pu s J Sustituye todos los saltos de l nea de la selecci n por un espacio en blanco Si se trataba de l neas sangradas elimina adem s los espacios en blanco extras gJ Igual que el anterior pero sin reajustar los espacios en blanco gt A ade un nivel de sangrado a cada l nea seleccionada lt Elimina un nivel de sangrado de las l neas seleccionadas Los dos ltimos comandos est n pensa
109. kupext As por ejemplo el comando set backupext res l har que nuestras copias de seguridad se guarden con la extensi n res de respal do Tambi n podemos indicar mediante la opci n backupdir el directorio donde se guardar n estas copias de seguridad por defecto ser el mismo directorio que el fichero original La opci n backup difiere de la opci n writebackup ya que sta crea una copia de seguridad transitoria s lo durante el proceso de grabaci n Si cuando guardamos los cambios ya hab a una copia de seguridad sta se perder y ser sustituida por la nueva copia de seguridad En ocasiones no obs tante puede interesarnos mantener inalterada la versi n original del fichero Pa ra ello Vim ofrece la opci n patchmode si la activamos la primera copia se conservar con la extensi n que le indiquemos Por ejemplo el comando set patchmode orig hace que la versi n original siempre se conserve con la exten si n orig 8 3 C mo localizar los ficheros Un sistema Unix tiene una infinidad de ficheros Moverse por el rbol de direc torios no siempre es f cil A veces hay que teclear rutas muy largas y en ocasiones no sabemos con exactitud d nde encontrar cierto fichero Vim ofrece un conjunto de utilidades para ayudarnos a localizar los ficheros a editar 74 Cap tulo 8 Trabajo con ficheros El punto de partida para cualquier b squeda de ficheros es el direct
110. l ltimo texto copiado con alguna modalidad del comando y 1 a 9 Contienen los ltimos textos borrados en orden inverso es decir el registro 1 contiene el borrado m s reciente Contiene el ltimo texto borrado de tama o inferior a una l nea creo Contiene el ltimo texto insertado Contiene el nombre del fichero actual Contiene el nombre del fichero alternativo si lo hay Contiene la ltima cadena de b squeda Contiene el ltimo comando de l nea de comandos _ Contiene el agujero negro v ase m s adelante Contiene una expresi n v ase m s adelante Representa el porta papeles del sistema es decir la zona de memoria que permite a las distintas aplicaciones intercambiar datos entre s BLa ayuda de Vim dice literalmente que este registro contiene el ltimo small delete lo que literalmente habr a que traducir por peque a eliminaci n Yo he hecho pruebas y ah se almacena los caracteres borrados individualmente y las palabras pero no las l neas Aunque tampoco estoy seguro EA Age Cap tulo 4 Comandos elementales de manipulaci n del texto 4 2 4 3 El agujero negro y el registro de expresiones Todos los registros especiales que se acaban de mencionar son f ciles de en tender salvo dos el que he llamado agujero negro y el registro de expresiones El primero es como su propio nombre indica un lugar que se traga lo que se le eche y no lo devuelve Es decir lo que ponga
111. l cursor a un n mero concreto de l nea hay que decir que en Vim tambi n podemos indicar que queremos mover el cursor a la l nea que suponga un tanto por ciento concreto del documento y as podemos indicar por ejemplo que lleve el cursor a la l nea central del documento o a la l nea en la que empieza el segundo tercio del documento etc Todo esto se hace con el comando precedido de un argumento num rico que representa el tanto por ciento buscado As 50 llevar el cursor a la l nea que representa el cincuenta por ciento del total del documento FINALMENTE hay que aclarar que en algunos comandos de movimiento por l neas no tienen sentido los argumentos num ricos y por lo tanto si se introducen se ignoran As ocurre en todos los que tengan que ver con la pantalla H M L o en los que env en el cursor a un lugar fijo gg G 3 1 4 Movimientos horizontales y saltos de linea Los comandos que mueven el cursor horizontalmente a derecha o izquierda normalmente se detienen al principio o fin de una l nea Esto llama la atenci n de los usuarios novatos de Vim porque en los editores de texto se acostumbra a que por ejemplo si se pulsa la flecha derecha estando el cursor al final de una l nea se mueva al primer car cter de la pr xima l nea es decir que un comando que en principio mueve horizontalmente puede mover tambi n verticalmente En Vim para conseguir este efecto hay que modificar la opci n whichw
112. l n mero de elementos que se borrar n y el mbito se puede especificar de cualquiera de las maneras que ya se han visto mediante un objeto de texto o mediante un comando de movimiento del cursor Si el mbito se especifica mediante el modo visual o por medio de rangos el comando d act a inmediatamente en otro caso no actuar hasta que se haya indicado el mbito As los siguientes ejemplos d12G Borrar desde el cursor hasta la l nea n mero 12 d Borrar hasta el final de la l nea 43 Cap tulo 4 Comandos elementales de manipulaci n del texto d Borrar hasta el principio del p rrafo d hola Borrar hasta la pr xima aparici n de la palabra hola sin incluir a dicha palabra dgg Borrar hasta el principio del documento dap Borrar todo el p rrafo actual Etc tera Se ver que este comando es muy vers til En realidad en Vim casi todos los comandos son muy vers tiles por la gran variedad de posibilidades que existen para indicar el mbito de actuaci n En todo caso en el ap ndice B se han incluido todas las posibilidades del comando d De otro lado el comando d puede recibir un argumento num rico pero tam bi n es posible que el movimiento del cursor u objeto de texto que act a como mbito reciban un argumento num rico Y as por ejemplo 3daw significa bo rrar tres veces una palabra completa mientras que d3aw significa borrar una sola vez tres palabras c
113. l por l neas w ir a principio palabra ir a principio palabra blancos 103 Cap tulo A El alfabeto de Vim x borrar car cter borrar car cter anterior al cursor y copiar copiar l nea entera Z plegar 6699 En la letra g min scula he escrito comando general porque la mayor parte de los comandos directos que no se reflejan en la tabla anterior constan de dos letras 6699 siendo g la primera Por esa raz n en la transcripci n de comandos de Vim la 669 g es la letra que m s veces aparece 104 Ap ndice B Un ejemplo de todos los mbitos posibles En la siguiente tabla se usa el comando d borrar para explicar todos los mbitos que le podemos indicar sin recurrir al modo visual ni a la indicaci n ma nual de rangos Sustituyendo la letra d de este comando por la de cualquier otro comando que admita mbito de actuaci n c y etc tendremos todas las posi bilidades Comando Efecto daw Borrar una palabra completa hasta el principio de la pr xima palabra diw Borrar una palabra completa exclusivamente la palabra das Borrar una frase completa hasta el principio de la pr xima frase dis Borrar una frase completa exclusivamente la frase dap Borrar un p rrafo completo hasta el principio del pr ximo p rrafo dip Borrar un p rrafo completo exclusivamente el p rrafo
114. l que copy con la salvedad de que el texto original es suprimido En uno y otro si no se especifica rango el comando actuar sobre la l nea actual 4 3 Sustituci n global de texto 4 3 1 El comando substitute La sustituci n global de texto es una operaci n en la que se indican tres par metros Cadena de texto a buscar Cadena de sustituci n Cap tulo 4 Comandos elementales de manipulaci n del texto a Rango de la operaci n Tras ello se proceder a autom ticamente sustituir cada aparici n de la primera cadena con la segunda en todo el rango indicado pudiendo ser el rango todo el documento o una parte de l El comando para hacer eso en Vim es substitute que adem s de esa forma admite las formas s y su Su formato general es el siguiente rango substitute original reemplazo indicadores Donde rango Indica el rango de la operaci n Si no se indica el comando solo act a sobre la l nea en la que se encuentre el cursor El rango se determina de acuerdo con las reglas generales para la indicaci n manual de rangos substitute Es el nombre del comando Normalmente se usa en su versi n abre 6699 viada s o su original Es la cadena que hay que buscar en el texto En principio se rige por las reglas que ya se vieron para las operaciones de b squeda reemplazo Es la cadena de texto que hay que poner en lugar de la cadena original cada vez que est
115. le un desplazamiento concreto a a di ndolo a la cadena de b squeda separado del texto a buscar por el car cter P Por ejemplo el comando texto 3 buscar la cadena texto y cuan do la encuentre desplazar el cursor tres l neas El n mero indicado puede ser positivo o negativo Tambi n podemos indicar un desplazamiento dentro del texto buscado Pare ello se usan los indicadores de desplazamiento b 669 y e seguidos de un n mero positivo o negativo b se refiere al principio del texto buscado b beginning y e al final del texto buscado e end el n mero positivo o negativo indica a qu distancia del principio o del fi nal del texto debe colocarse el cursor Por ejemplo texto e 2 dejar el cursor sobre la x de texto En las b squedas hacia atr s el car cter que separa el texto a buscar del indicador de desplazamiento es en lugar de Caracteres especiales en las b squedas En la cadena de b squeda podemos introducir cualquier car cter Aunque hay algunos caracteres que requieren un tra tamiento especial Se trata de los siguientes PROTA Estos caracteres son usados en las expresiones regulares y por lo tanto tienen un significado especial Por ello cuando queramos usarlos en su significado habitual debemos precederlos del signo Hay otros dos caracteres que no se pueden introducir en la cadena de b squeda Se trata del salto de l
116. los signos lt y gt si fuera una tecla normal bastar a con escribirla en el caso de que a dicha tecla se le hubiera asignado ya un comando este ser a sobreescrito por el nuevo comando 3 Luego vienen las pulsaciones que habr a que hacer en Vim desde el modo normal para conseguir el efecto pretendido a En primer lugar ge mueve el cursor al final de la palabra anterior a la actual A continuaci n w mueve el cursor al principio de la pr xima pala bra es decir al principio de la palabra sobre la que estaba el cursor al empezar el comando 66599 1 Luego el comando 1 activa el modo de inserci n A continuaci n se escribe el car cter 18si para llevar el cursor al principio de la palabra en lugar de gew hubi ramos usado b en el caso de que al pulsar FS el cursor estuviera exactamente en el principio de una palabra b lo llevar a al principio de la palabra anterior Por eso se da el rodeo consistente en llevarlo primero al final de la palabra anterior y luego al principio de la siguiente 100 Cap tulo 12 Personalizaci n de Vim a La tecla ESC nos devuelve al modo normal En un comando map hay que escribir el nombre de la tecla rodeado de lt y gt no hay que pulsarla realmente El comando e nos lleva al final de la palabra El comando a vuelve a activar el modo de inserci n pero despla zando el c
117. mando gt gt sin haber establecido shiftround se insertar n cuatro espacios adicionales que sumados a los dos que hab a suman 6 Pero si se hab a establecido la opci n shiftround s lo se insertar n los espacios necesarios para llegar a los cuatro re queridos por shiftwidth 5 3 2 M todos de sangrado Aunque podemos sangrar las l neas manualmente mediante los comandos que se han visto Vim dispone de la posibilidad de sangrar autom ticamente los docu mentos para lo que hay que elegir un m todo de sangrado Los m todos posibles son Sangrado autom tico Este m todo que se activa al establecer la opci n au toindent o ai hace que cada linea nueva respete el sangrado de la l nea anterior Sangrado estilo C Se establece mediante el comando set cindent y se basa en los bloques l gicos de la programaci n en C y en C Posiblemente sea el sangrado m s personalizable de todos Hay tres opciones que lo con trolan cinkeys cinoptions y cinwords Para m s informaci n puede consultarse la ayuda sobre estas opciones Sangrado inteligente Se activa al establecer la opci n smartindent Este san grado genera un nivel adicional cada vez que se abre una llave y cada vez que aparece alguna de las palabras recogidas en la opci n cinwords cuan do esas palabras vuelven a aparecer o cuando se cierra una llave el sangrado se reduce en un nivel Cuando teniend
118. may be at most 25 words A Transparent copy of the Document means a machine readable copy represen ted in a format whose specification is available to the general public that is suitable for revising the document straightforwardly with generic text editors or for images composed of pixels generic paint programs or for drawings some widely available drawing editor and that is suitable for input to text formatters or for automatic translation to a variety of formats suitable for input to text formatters A copy made in an otherwise Transparent file format whose markup or absence of markup has been arranged to thwart or discourage subsequent modification by readers is not Transparent An image format is not Transpa rent if used for any substantial amount of text A copy that is not Transparent is called Opaque Examples of suitable formats for Transparent copies include plain ASCII without mar kup Texinfo input format LaTeX input format SGML or XML using a publicly availa ble DTD and standard conforming simple HTML PostScript or PDF designed for human modification Examples of transparent image formats include PNG XCF and JPG Opaque formats include proprietary formats that can be read and edited only by proprietary word processors SGML or XML for which the DTD and or processing tools are not generally available and the machine generated HTML PostScript or PDF produced by some word processors for output purposes only The Title
119. mos en ese registro no es recuperable por la v a de ese registro Se usa por lo tanto exclusivamente cuando se quiere borrar definitivamente un texto pero no se quiere sobreescribir el contenido del registro 1 6699 El texto enviado al agujero negro no es rescatable mediante los comandos p ni a trav s de ning n registro pero si se puede deshacer la operaci n por la que fue borrado mediante el comando u En cuanto al registro de expresiones est dise ado para poder incluir en el texto el resultado de expresiones matem ticas Cuando ejecutamos el comando el cursor se traslada a la ltima l nea de la pantalla para que escribamos la expresi n por ejemplo 23 551 tras lo cual el comando p o P o gp o gP pegar en el texto el resultado de la expresi n Las expresiones pueden contener cualquiera de los caracteres propios de las operaciones matem ticas as como algunas funciones y operadores es pecializados de Vim Se puede usar por ejemplo el valor de alguna variable de entorno o el de alguna variable de Vim 4 2 5 Los comandos copy y move Una forma diferente de copiar texto est constituida por los comandos copy y move El formato del primero es el siguiente rango copy destino donde rango especifica las l neas que se copiar n y destino especifica el n mero de l nea a partir del cual se copiar el texto Move funciona igua
120. mos indicar directamente el n mero de l neas que deseamos asignar a la ventana mediante el comando altura CTRL W _ Este mismo comando sin indicaci n de tama o har a la ventana tan grande como sea posible 9 4 Cerrar ventanas El comando close cierra la ventana activa aquella sobre la que est el cursor y el comando only cierra todas las ventanas salvo la ventana activa CTRL W o produce el mismo resultado En realidad cerrar una ventana donde se est editando un buffer es muy pare cido a terminar la ejecuci n de Vim si el buffer ha sido modificado y se cierra la ventana se perder n los cambios por lo que Vim solicita que se aclare expl cita mente qu se quiere hacer Y de hecho aqu tambi n funcionan los comandos que en general funcionan para terminar Vim q Cerrar ventana s lo si no se ha modificado el buffer o aunque se haya mo dificado el mismo buffer se est mostrando en otras ventanas q Cerrar sin guardar los cambios Z Cerrar sin guardar los cambios wq Guardar los cambios y cerrar ZZ Guardar los cambios y cerrar Si queremos ejecutar estos comandos los tres primeros no para la ventana activa sino para todas las ventanas podemos hacerlo simplemente a adiendo all detr s de la q del comando As qa11 significa cerrar todas las ventanas Y wqall y qall significa respectivamente guardar y cerrar o descartar cam bios y cerrar todas las ventanas
121. n el modo de comando ya que si eso ocurriera podr amos deshacer lo mal hecho simplemente pulsando el comando u deshacer Pero hay comandos cuyo efecto no se puede deshacer como por ejemplo gra bar en disco los cambios hechos en el documento o salir de Vim Por eso estos comandos aunque sean de uso muy habitual son comandos de l nea de comandos Porque para ejecutarlos hay que empezar por escribir luego el nombre del co mando y finalmente la tecla INTRO Como adem s mientras se escribe el nombre del comando lo escrito se refleja en la ltima l nea de la pantalla es muy dif cil que el comando llegue a ejecutarse por error 2 2 3 Otras cuestiones relacionadas con los comandos Respecto de los comandos normales o de efecto instant neo t ngase adem s en cuenta que Prefijo num rico en los comandos La mayor a de los comandos de Vim admi ten un prefijo num rico que se interpreta como n mero de veces que hay que ejecutar el comando Para introducir ese prefijo basta con escribirlo antes que el comando por eso se llama prefijo Y as por ejemplo si el coman do daw borra toda una palabra 2daw borrar dos palabras y 200daw borrar doscientas palabras Duplicaci n de comando Un porcentaje muy alto de los comandos de Vim tie nen la peculiaridad de que si son duplicados hacen que el mbito del co mando sea toda la l nea sobre la que se encuentra el cursor Por ejemplo el comando general para
122. n lugares diferen tes o usar argumentos num ricos pero hay que tener claro que siempre se insertar el ltimo texto borrado mediante los comandos para borrar texto El texto borrado mediante las teclas SUPR y RETRO no afecta a estas operaciones La combinaci n del comando x con el comando p hace que tecleados uno tras otro el efecto sea intercambiar el orden de dos caracteres por eso a veces se lee que xp es un comando de Vim x borrar el car cter bajo el cursor y por lo tanto el pr ximo car cter quedar bajo el cursor p pegar a la derecha del cursor el ltimo car cter borrado el resultado es que el que estaba detr s pasa a estar delante Cap tulo 4 Comandos elementales de manipulaci n del texto 4 2 2 Copiar texto Copiar texto significa enviarlo a la zona de memoria a donde va a parar el texto borrado pero sin necesidad de borrarlo realmente Para ello se usa el comando y que es de los que requieren que se le especifique un mbito de actuaci n En ese sentido todo lo dicho sobre el comando d incluido el ap ndice B es aplicable al comando y y as por ejemplo y copiar hasta el final de la l nea mientras que y12G copiar hasta la l nea 12 Y de la misma manera que dd borra toda una l nea yy copia toda una l nea Hay sin embargo una inconsistencia porque mientras D borra hasta el final de la l nea Y no copia hasta el final de la l nea sino que tam
123. n un documento con enlaces e hipertexto De otro lado se considera comando de movimiento todo aquel cuyo efecto es que el cursor se desplace sin llegar a alterar el contenido del texto con la nica excepci n de los saltos de hipertexto tareas en la terminolog a de Vim Por lo tanto en este grupo de comandos podemos diferenciar las siguientes categor as 1 Comandos espec ficamente dirigidos a mover el cursor 2 Comandos dirigidos a otra finalidad que tienen el efecto colateral de mover el cursor por ejemplo los comandos de b squeda de caracteres o palabras 3 Utilidades ofrecidas por Vim para saltar entre distintas partes del documento 3 1 Comandos espec ficamente dirigidos a mover el cur sor En este grupo de comandos se incluyen todos aquellos cuya finalidad exclusiva es la de mover el cursor es decir que no sirven para ninguna otra cosa su vez se puede distinguir dentro de ellos los movimientos simples y los movimientos 28 Cap tulo 3 Comandos para el movimiento del cursor basados en el reconocimiento de objetos Tambi n se han incluido como grupo aparte los comandos dirigidos a mover el cursor entre distintas l neas y los que producen un salto a cierto car cter dentro de la l nea 3 1 1 Movimientos simples del cursor Para mover el cursor los comandos m s simples son l gicamente los represen tados por las teclas de movimiento del cursor que nos permiten mover el cursor un car cter a derecha
124. nd add to it an item stating at least the title year new authors and publisher of the Modified Version as given on the Title Page If there is no section Entitled History in the Document create one stating the title year authors and publisher of the Document as given on its Title Page then add an item describing the Modified Version as stated in the previous sentence J Preserve the network location if any given in the Document for public access to a Transparent copy of the Document and likewise the network locations given in the Document for previous versions it was based on These may be placed in the History section You may omit a network location for a work that was published at least four years before the Document itself or if the original publisher of the version it refers to gives permission 113 Cap tulo D Licencia GNU para Documentaci n Libre K For any section Entitled Acknowledgements r Dedications Preserve the Title of the section and preserve in the section all the substance and tone of each of the contributor acknowledgements and or dedications given therein L Preserve all the Invariant Sections of the Document unaltered in their text and in their titles Section numbers or the equivalent are not considered part of the section titles M Delete any section Entitled Endorsements Such a section may not be included in the Modified Version N Do not retitle any existing section to be Entitl
125. ndo bien deberemos fijar tabstop a 4 para que el texto se vea correctamente y luego ejecutar retab 8 ello har que en primer lugar el valor de tabstop se fije a 8 y luego se ira recorriendo todo el documento reajustando la combinaci n entre espacios en blan co y saltos de tabulador para evitar que se produzcan l neas mal alineadas como consecuencia del cambio de valor para tabstop Por defecto retab s lo reajusta las l neas en las que hay una combinaci n de espacios en blanco y tabuladores es decir en una l nea que s lo contenga espacios en blanco nunca colocar un tabulador a no ser que hayamos usado la opci n en cuyo caso retab analizar tambi n las l neas en las que no hay tabuladores 5 3 Sangrado de l neas 5 3 1 Comandos para controlar el sangrado La indentaci n o sangrado de l neas es el espacio en blanco que se deja a la izquierda de una l nea Tiende a confundirse con el tabulador debido a que nor malmente se inserta con esa tecla pero su funci n es diferente ya que el tabulador se limita a desplazar el cursor cierto espacio a la derecha en cualquier lugar de la l nea y el sangrado se produce s lo en la parte izquierda de la l nea y su funci n es destacar una l nea o p rrafo o facilitar la apreciaci n visual de la estructura interna de un documento Esto ltimo ocurre sobre todo en la escritura de programas de ordenador en donde el sangrado permite ver con claridad las
126. nea ya que este se escribe con la tecla INTRO pero cuando pulsamos esa tecla Vim interpreta que eso significa que ya hemos terminado de escribir la cadena de b squeda Por esta raz n para buscar un salto de l nea hay que escribir n Asimismo aunque en la cadena de b squeda podemos perfectamente incluir un tabulador por razones de compatibilidad o por las que sean se permite que nos refiramos al tabulador como t Por otra parte cuando buscamos m s de una palabra estas normalmente est n separadas por espacios en blanco Sin embargo es posible que Vim haya sustituido alguno de esos espacios en blanco por saltos de l nea e incluso por saltos de l nea cierto n mero de espacios en blanco requeridos por el sangrado El car cter de b squeda _s significa un espacio en blanco o un salto de l nea El car cter de b squeda _s significa un espacio en blanco o un salto de l nea seguido de cualquier n mero de espacios en blanco Cap tulo 3 Comandos para el movimiento del cursor 3 3 Marcas y saltos entre partes del documento Una marca en el documento es una se al invisible que Vim coloca en un lugar del mismo de tal manera que luego sea posible desplazar el cursor con facilidad al lugar en donde se encuentra la marca 3 3 1 Marcas autom ticas Cuando realizamos un salto a cierta posici n con algunos comandos gran parte de los de movimiento del cursor Vim recuerda la posici n previa A esta posici
127. ngo indicado Como no se ha indicado ning n rango se aplica el rango por defecto para substitute que es la l nea En definitiva dicho comando lo que hace es buscar los caracteres P y cada vez que los encuentre en la l nea en la que estuvieran cambiar todas las apariciones de uno por dos Con el comando global s lo podemos ejecutar comandos que empiecen por Para ejecutar comandos normales que no empiecen por podemos usar el comando normal Este comando ejecuta los comandos normales que se le indi quen As por ejemplo normal dap ejecuta el comando dap desde la l nea de comandos Con normal podemos teclear varios comandos seguidos y ser n ejecu tados en ese orden aunque en caso de deshacer la edici n todos ser n deshechos conjuntamente a AA Cap tulo 5 Gesti n de l neas sangrados y tabuladores 5 1 L neas 5 1 1 Los saltos de l nea en los editores de texto En un fichero de texto el salto de l nea es un verdadero car cter que se intro duce pulsando la tecla INTRO en modo de inserci n Eso es as sea cual sea el editor manejado Hay no obstante algunos editores en los que cuando una l nea no cabe en la pantalla din micamente se insertan saltos de l nea para facilitar su visualizaci n esos saltos de l nea luego no son almacenados en el fichero A veces adem s el salto de l nea din mico no se inserta exactamente en el punto en el que la l nea deja de v
128. notice saying this License applies to the Document are reproduced in all copies and that you add no other conditions whatsoever to those of this License You may not use technical measures to obstruct or control the reading or further copying of the copies you make or distribute However you may accept compensation in exchange for copies If you distribute a large enough number of copies you must also follow the conditions in section 3 You may also lend copies under the same conditions stated above and you may pu blicly display copies 3 COPYING IN QUANTITY If you publish printed copies or copies in media that commonly have printed covers of the Document numbering more than 100 and the Document s license notice requires Cover Texts you must enclose the copies in covers that carry clearly and legibly all these Cover Texts Front Cover Texts on the front cover and Back Cover Texts on the back cover Both covers must also clearly and legibly identify you as the publisher of these copies The front cover must present the full title with all words of the title equally prominent and visible You may add other material on the covers in addition Copying with changes limited to the covers as long as they preserve the title of the Document and satisfy these conditions can be treated as verbatim copying in other respects If the required texts for either cover are too voluminous to fit legibly you should put the first ones listed as many
129. ntos Una expresi n regular En realidad dos expresiones regulares una para la primera l nea del rango y otra para la segunda Marcas manuales que se explican en la secci n 3 3 2 p gina 39 Las marcas se identifican por la letra que se les asoci en el momento de su creaci n precedida de un ap strofe As por ejemplo la expresi n t b se refiere a un rango entre la l nea donde se encuentra la marca t y aquella en la que se encuentra la marca b Entre las marcas utilizables est n las predefinidas por Vim incluidas las que acabamos de ver que se insertan en el modo visual As por ejemplo el rango gt gt se refiere a todas las l neas desde el fin de la selecci n hasta el final del fichero Un n mero concreto de l neas La indicaci n de la l nea final puede hacerse mediante una operaci n aritm tica simple Por ejemplo una suma a partir de la l nea inicial Eso no tiene mucho sentido si la l nea inicial es un n mero fijo pero s lo tiene si la l nea inicial es un n mero variable Por ejemplo si queremos hacer una operaci n en cuatro l neas a partir de la l nea 10 es decir hasta la l nea 13 podr amos escribir como rango 10 10 3 pero eso es una tonter a es preferible escribir 10 13 Ahora bien si la linea inicial es la actual sea cual sea escribir 3 tiene bastante m s sentido De hecho un argumento num rico para el comando siempre se interpreta
130. o file y luego write o a usar primero write Nue voNombre y luego edit NuevoNombre En suma el buffer se guardar PE q BE Cap tulo 8 Trabajo con ficheros con un nuevo nombre y la edici n continuar asociando el buffer actual a dicho nuevo fichero Si hemos abierto el fichero en el modo de s lo lectura con la opci n R o con el comando view que activa Vim en el modo de solo lectura al ejecutar el comando w recibiremos un mensaje de error Aun as podremos guardar los cambios si tras el comando w a adimos Si por el contrario iniciamos Vim con el comando M no podremos grabar los cambios del fichero a no ser que activemos las opciones de Vim modifiable y write Parecido a write es el comando update la diferencia entre uno y otro es P que el segundo no hace nada en el caso de que el fichero editado no haya sufrido ninguna modificaci n 8 2 3 Copias de seguridad Por defecto Vim no genera copias de seguridad de nuestros ficheros Para cam biar este comportamiento debemos ejecutar el comando set backup tras lo cual cada vez que guardemos los cambios en un fichero la versi n original se con servar con su mismo nombre seguido de una tilde y as por ejemplo el original del fichero prueba txt pasar a llamarse prueba txt Si no nos gusta esa extensi n para las copias de seguridad podemos cambiarla mediante la opci n bac
131. o alguno de estos procedimientos activados pulsamos INTRO la pr xima l nea tendr exactamente el mismo sangrado que la anterior Eso est bien mientras estamos escribiendo un bloque de texto que lo requiera pero cuando hemos terminado con l y deseamos volver a escribir sin sangrado habr a que borrar manualmente el sangrado introducido autom ticamente por Vim Para hacer esto ES Cap tulo 5 Gesti n de l neas sangrados y tabuladores de manera r pida estando en el modo de inserci n basta con pulsar CTRL D para eliminar un nivel de sangrado o OCTRL D para eliminarlos todos Otro comando relacionado con el sangrado es que sangra el bloque de texto correspondiente al mbito que se le indique siguiendo las reglas de sangrado internas de Vim o las del programa que se indique en la opci n equalprg Por ejemplo 14 sangra 15 l neas a contar desde la actual 3Como estaremos en el modo de inserci n al empezar a escribir el comando y pulsar el primer 0 este se escribir en el buffer porque Vim pensar que eso es lo que queremos hacer Pero cuando a continuaci n se pulse CTRL D Vim comprender que lo quer amos era introducir ese comando eliminar el cero del buffer y suprimir todos los sangrados de la l nea Cap tulo 6 Otros cambios 6 1 Sustituci n simple de texto comando r El comando para sustituir texto es r Su efecto es que el car cter bajo el cur sor ser sustituid
132. o hacen nada porque el cursor no se puede mover a ninguna parte ya que el buffer est vac o Las tildes a la izquierda de las l neas representan eso que esas l neas en realidad no existen y el mensaje de ayuda est superpues to en la pantalla y desaparecer en cuanto realicemos alguna acci n real sobre el buffer aunque podemos volverlo a traer a la vista con el comando intro Para empezar a escribir debemos pulsar la tecla i esto activar el modo de inserci n Otros comandos tiles en esta primera aproximaci n a Vim son q para salir de Vim y help para obtener ayuda Para introducir estos ltimos co mandos si hemos pulsado la tecla 1 para empezar a escribir hay primero que pulsar la tecla ESC luego hay que escribir el comando tal cual es decir empezar con el signo de los dos puntos y escribir el comando en cuesti n Para indicarle a Vim que ya hemos escrito el comando se pulsa la tecla INTRO El comando para salir de Vim es q Pero este comando s lo funciona si no hemos cambiado absolutamente nada en el buffer editado En caso contrario tene Salvo que en nuestro sistema se haya reescrito el script para arrancar Vim y este llame directa mente a la versi n gr fica En tal caso para arrancar la versi n de solo texto habr que usar la opci n X en la l nea de comandos o desactivar las X y desde una consola normal llamar a Vim 10 Cap tulo 1 Ideas b sicas sobre Vim mos que a
133. o por el pr ximo car cter que se teclee Si recibe un argumento num rico n se sustituir n los pr ximos n caracteres por el car cter tecleado in mediatamente despu s del comando Es decir el car cter de sustituci n es siempre el que va detr s del comando y as si pulsamos 3rx el car cter bajo el cursor y los dos siguientes se convertir n en x Si el car cter de reemplazo es un car c ter de nueva l nea que se obtiene pulsando INTRO el argumento num rico s lo afecta a cu ntos caracteres originales desaparecer n pero no a cuantos saltos de l nea se insertar n En suma este comando no es muy til salvo acaso en combinaci n con el comando p ver m s adelante 6 2 El modo de reemplazo El comando R activa el modo de reemplazo que equivale a lo que otros pro gramas llaman sobre escritura es decir tras pulsarlo los caracteres que vayamos escribiendo ir n sustituyendo a los caracteres previamente existentes en el buffer Una peculiaridad del modo de reemplazo en Vim es que en l al borrar usando la tecla Retro conforme vayamos borrando ir n apareciendo los caracteres origl nales 6 3 Cambiar may sculas min sculas El comando afecta al car cter bajo el cursor poni ndolo en may sculas si estaba en min sculas y viceversa Usado en modo visual afectar a todo el texto 59 Cap tulo 6 Otros cambios seleccionado y con un argumento num rico afectar a ese
134. oftware Foundation with no Invariant Sections no Front Cover Texts and no Back Cover Texts A copy of the license is included in the section entitled GNU Free Documentation License If you have Invariant Sections Front Cover Texts and Back Cover Texts replace the with Texts line with this with the Invariant Sections being LIST THEIR TITLES with the Front Cover Texts being LIST and with the Back Cover Texts being LIST If you have Invariant Sections without Cover Texts or some other combination of the three merge those two alternatives to suit the situation If your document contains nontrivial examples of program code we recommend re leasing these examples in parallel under your choice of free software license such as the GNU General Public License to permit their use in free software 116
135. ompletas aunque el efecto es el mismo en ambos casos se bo rran tres palabras Pero si escribimos 3d3aw hemos pedido borrar tres veces tres palabras completas se borrar n pues nueve palabras El comando dd es una modalidad del comando d borra totalmente la l nea sobre la que est el cursor No admite mbito pero si admite prefijo num rico y as 2dd borrar dos l neas empezando por aquella sobre la que est el cursor Los comandos c y cc son id nticos a d y dd con la nica salvedad de que tras borrar c y cc activan el modo de inserci n para que podamos escribir un texto que sustituya al que se acaba de borrar El comando J est especializado en borrar saltos de linea es decir ejecutado sobre una l nea se borrar el salto que separa dicha l nea de la siguiente Pero aun m s en el caso de que estemos trabajando con l neas sangradas el comando no solo borrar el salto de l nea sino tambi n todos los espacios en blanco extras que sean consecuencia del sangrado Para evitar este ltimo efecto se puede usar el comando gJ 4 1 2 Abreviaturas para d y c Algunas operaciones de borrado son tan corrientes que se facilita para ellas un comando de una sola letra el cual es por lo tanto una abreviatura Estas son las siguientes Tecla Equivale a Efecto x dl Borra car cter bajo el cursor X dh Borra car cter ante el cursor 44
136. on enlaces a las distintas posibilidades de ayuda Esa pantalla general en realidad es un documento normal de Vim en el que nos debemos mover de la misma manera que en cualquier otro documento La ayuda se muestra en una ventana independiente Para salir de ella debemos usar los m todos normales ZZ q etc Dentro de la pantalla de ayuda el texto encerrado entre barras verticales repre senta enlaces Colocando el cursor sobre dicho texto y pulsando CTRL saltare mos al enlace en cuesti n Para volver a nuestro punto de origen podemos pulsar CTRL T 6 CTRL O El formato general del comando help es el siguiente help argumento Donde argumento puede ser Cap tulo 1 Ideas b sicas sobre Vim Un comando Se mostrar ayuda sobre dicho comando Por ejemplo help x muestra la ayuda sobre el comando x Si queremos obtener una lista de todos los comandos de Vim debemos ejecutar help index Una combinaci n de teclas Muestra la ayuda sobre tal combinaci n Por ejemplo help CTRL A Si esa combinaci n de teclas no funciona igual en todos los modos en los que funciona para precisar que queremos ayuda sobre dicha combinaci n en un modo concreto hay que a adir a la combi naci n de teclas los prefijos i_ v_ O c_ seg n deseemos saber c mo funciona dicha combinaci n en los modos de inserci n visual o de edici n de l nea de comandos Si no precisamos ning n prefijo se o
137. orio activo En este sentido Vim cuenta con los comandos b sicos para la gesti n de directorios cd Cambia el directorio activo de Vim pwd Informa de cual es el directorio activo de Vim en ese momento sled Cambia el directorio activo exclusivamente para la ventana actual Por otra parte aunque al arrancar Vim su directorio activo coincide con el directorio desde el que fue iniciada la aplicaci n el directorio activo de Vim es una variable interna del programa que no tiene por qu coincidir con el directorio activo de la shell Desde este punto de vista no es lo mismo ejecutar cd que cambia el directorio activo de Vim que ejecutar cd que cambia el directorio activo de la shell 8 3 1 El explorador de ficheros de Vim Vim contiene un plugin que le permite editar un directorio Cuando se abre un directorio este se muestra en pantalla como si fuera un fichero normal aunque existen ciertas diferencias y funcionan ciertos comandos especiales La primera l neas mostrada en la pantalla ser m s o menos del tenor siguiente Press for keyboard shortcuts En ella se nos informa de que la tecla mostrar en pantalla las teclas b si cas de funcionamiento del explorador de ficheros La segunda l nea nos indica el criterio de ordenaci n seguido y las extensiones que se ha decidido colocar al final de la lista y la tercera l nea nos comunica el nombre del directorio abierto En el buffer podemos navegar entre
138. os distintos ficheros que Vim ha le do y cargado al iniciar 97 Cap tulo 12 Personalizaci n de Vim lo tanto en los ficheros de inicializaci n son in tiles y no hay que usarlos Es decir en ellos podemos poner cualquier orden que podr amos ejecutar en Vim precedida de dos puntos pero sin los dos puntos Tambi n es posible incluir comentarios en estos ficheros El s mbolo de los comentarios son las comillas Vim ignorar toda la l nea desde que encuentre el car cter hasta el Como ejemplo de ese tipo de ficheros nada mejor que incluir mi propio fichero vimre ah va FUNCIONAMIENTO set nocompatible set ttyfast set noerrorbells set novisualbell set helplang es set history 50 set autochdir VISUALIZACI N set ruler m set showmode m set showcmd dd syntax enable set nonumber set showmatch SANGRADO SALTO set nowrap set tabstop 8 set softtabstop 3 set shiftwidth 3 set expandtab set textwidth 75 set autoindent set backspace 2 final GENERAL Activar modo de no compatibilidad con Vi Terminal rapido Evita los pitidos en caso de error Evita advertencias visuales de los errores Idioma para la ayuda y mensajes Tama o del historial de comandos El directorio activo es el del fichero abierto Activa la regla inferior Activa la indicaci n de modos Activa la indicaci n de comandos Coloreado de sintaxis No mostrar n meros de linea Cuando se cierran par n
139. os documentos de texto como puede ser por ejemplo este documento que en el momento de escribir esta l nea tiene 5287 l neas de puro texto en formato ATEX Desgraciadamente la potencia y flexibilidad de Vim tiene un precio su curva de aprendizaje es m s empinada al principio que la de otros editores menos potentes No tanto porque sean dif ciles de entender sus conceptos sino porque lleva cierto tiempo acostumbrarse a su peculiar manera de trabajar Aunque una vez acostum brados si somos usuarios habituales de editores de texto y escribimos texto muy a menudo nos preguntaremos c mo pudimos sobrevivir tanto tiempo sin trabajar con Vim El nombre Vim es una contracci n de Vi IMproved lo que podr amos tradu cir por Vi mejorado Es decir Vim se basa en Vi el cual es el m s cl sico editor de texto a pantalla completa de Unix Por ello aunque en el mundo Unix abundan los editores de texto Vi es el nico editor junto con Ed que podemos tener la seguridad de encontrar en cualquier instalaci n de Unix y por tanto en cualquier distribuci n de Linux lo que es otra raz n para aprender su funcionamiento En 2Esta secci n se ha escrito la ltima Por eso hay ya tantas l neas en el documento Al terminarla aun quedar n las modificaciones y correcciones oportunas Pero en todo caso el documento final oscilar en torno a las 5300 l neas de texto Cap tulo 1 Ideas b sicas sobre Vim Linux todas las distribu
140. os espacios hasta d nde depende de la configuraci n del editor Cualquier editor puede configurarse para dar al tabulador cualquier valor pero si escribimos el fichero con un editor configurado para un concreto valor y luego lo leemos con un editor configurado para otro valor distinto las l neas en las que se ha usado un tabulador se ver n mal A ello hay que a adir que cuando se inserta un tabulador en una l nea se pro duce un desajuste entre el n mero de columna y el n mero de car cter de la l nea Porque el tabulador es un s lo car cter aunque provoque un desplazamiento del cursor de varias columnas Pocos editores muestran este desajuste Vim es uno de ellos Si activamos la opci n ruler veremos que en la esquina inferior derecha de la pantalla se nos informa del n mero de l nea y del n mero de columna Pero si insertamos un tabulador en la l nea veremos como el n mero de columna se con 7 Cap tulo 5 Gesti n de l neas sangrados y tabuladores vierte en dos n meros separados por un gui n A la izquierda el n mero de car cter REAL de la l nea a la derecha el n mero de columna en donde est el cursor Todos estos inconvenientes llevan a que muchos editores prefieran insertar es pacios en blanco configurando la tecla del tabulador para que en lugar de insertar en el buffer un car cter de tabulador se inserten el n mero necesario de espacios en blanco En estos casos se habla de saltos blandos d
141. que en ocasiones incluso estos comandos deben ser repetidos m s de una vez si tenemos pliegues anidados En este ltimo caso es preferible usar los Cap tulo 10 Comandos para la visualizaci n comandos zR y zM Si queremos borrar todos los pliegues del documento hay que usar zD El comando zn desactiva todos los pliegues zN los devuelve a su estado previo y zi alterna entre uno y otro En el caso de que el documento tenga pliegues anidados el comando z0 abrir el pliegue actual y todos los pliegues dentro de l mientras que zC realizar la acci n inversa cerrar el pliegue actual y todos sus pliegues internos 10 2 2 Guardar y restaurar pliegues Los pliegues de un buffer son marcas din micas insertadas por Vim pero no forman parte del buffer propiamente dicho por lo tanto cuando se deja de editar un buffer sus pliegues se pierden Podemos no obstante salvar los pliegues mediante el comando mkview Este comando almacena los pliegues y otras opciones que afectan a la visualizaci n del documento de forma que cuando volvemos al docu mento podemos rescatar tales datos mediante el comando loadview La opci n viewoptions controla qu es lo que se almacenar y rescatar Para un mismo fichero podemos almacenar hasta diez vistas distintas simple mente hay que escribir el n mero de vista que queremos almacenar o rescatar tras el comando As mkview 3 guardar los datos
142. rado que se aplicar a las l neas afectadas es decir el n mero de espacios en blanco que se dejar n a la izquierda de las mismas No hay ning n comando en Vim para justificar texto Podemos hacerlo median te alg n comando externo como fmt Por ejemplo fmt formatear todo el texto si tenemos instalado dicho comando en el sistema Otra posibilidad es usar el comando _j incorporado por un paquete de expan si n que suele incluirse en las distribuciones de Vim Para usar ese paquete hay que ejecutar el comando runtime macros justify vim tras ello podremos usar el comando _j que es un comando que por defecto afecta a todo el documento o al texto seleccionado 5 2 Saltos de tabulador 5 2 1 Saltos de tabulador blandos y duros En las viejas m quinas de escribir exist a una tecla que mov a el carro a ciertos puntos fijos Esa tecla se usaba para escribir tablas y de ah su nombre de tabulador Hoy en d a los teclados de ordenador contienen una tecla llamada tabulador y entre los caracteres admisibles en un fichero de texto hay uno llamado del mismo modo Ahora bien entre escribir en papel o escribir un fichero electr nico hay grandes diferencias Y una de las m s evidentes se encuentra en el tabulador Porque este es el nico car cter que el programa lector de un fichero no tiene por qu saber c mo representar ya que un tabulador significa un desplazamiento indeterminado a la derecha cu nt
143. rap Esta opci n controla qu comandos de movimiento horizontal pueden cambiar de l nea y en qu modos de funcionamiento Sus posibles valores son los siguientes Valor Comando Modo b lt BS gt Normal y visual s lt Space gt Normal y visual h h Normal y visual l l Normal y visual lt lt Left gt Normal y visual gt lt Right gt Normal y visual A 5 Normal y visual lt Left gt Inserci n y reemplazo lt Right gt Inserci n y reemplazo 33 Cap tulo 3 Comandos para el movimiento del cursor As para conseguir que las flechas del cursor derecha e izquierda puedan cam biar de l nea al llegar a uno de sus extremos habr a que darle a esta opci n el valor h 1 lt gt Personalmente me gusta darle todos los valores posibles 3 1 5 B squeda de caracteres en la l nea Los comandos de b squeda de caracteres se diferencian de los de b squeda de palabras en que los primeros act an inmediatamente y sirven para buscar exclusi vamente un car cter individual dentro de la l nea en la que est el cursor lo cual al ser tan restringido el mbito de la b squeda hace que esto sirva sobre todo para provocar un salto en el cursor hasta un car cter concreto El comando b sico de b squeda de caracteres es f find Este comando buscar la pr xima aparici n en la l nea actual del car cter que sea tecleado in mediatamente despu s de l As
144. ras que cabbrev s lo funciona en el modo normal Pero como en el modo normal no es corriente tener que usar abreviaturas en la pr ctica s lo se utiliza iabbrev Cap tulo 7 Manipulaci n del texto en los modos visual y de inserci n Para borrar una abreviatura de cualquier tipo debemos usar el comando unabbreviate abreviatura Mientras escribimos este comando es posible que la abreviatura se expanda Pero eso no tiene importancia Vim seguir entendiendo el comando Para eliminar todas las abreviaturas el comando a usar es abclear Parte III Ficheros ventanas y visualizaci n 70 Cap tulo 8 Trabajo con ficheros 8 1 Cuestiones generales sobre ficheros 8 1 1 Buffers y ficheros Aunque en el lenguaje corriente solemos decir que estamos editando un fiche ro lo cierto es que lo que es objeto de edici n es siempre un buffer entendiendo por tal una zona de memoria en la que se encuentra el texto objeto de nuestra edi ci n Un fichero por el contrario es un conjunto de datos almacenados en el disco o en alg n soporte similar Por lo tanto los ficheros son estables e inmodificables aunque podemos borrarlos y crear otro fichero con el mismo nombre y distinto contenido Un buffer por el contrario se encuentra en la memoria RAM es vol til y esencialmente modificable Cuando editamos un fichero lo que hacemos es copiar su contenido a una zona de memoria un buffer y durante la edici
145. ro Al ocultar el buffer actual este desaparece de la vista pero sigue cargado en memoria Para volverlo a traer a la vista podemos ejecutar el comando unhide O traerlo seleccionar expresamente ese buffer de la lista de buffers que se explica m s adelante En fin el comando e seguido inmediatamente despu s del car cter y sin nombre de fichero produce el efecto de descartar todos los cambios del buffer actual y volver a cargar la versi n del fichero almacenada en el disco es decir la correspondiente a la ltima vez que se guard el fichero Cap tulo 8 Trabajo con ficheros 8 2 2 Grabar un fichero o sus cambios en disco El comando general para guardar ficheros en disco es rango w rite gt gt NombreFichero Donde rango es un rango opcional de l neas Si no se especifica se guardar todo el fiche ro pero si se especifica se guardar n exclusivamente las l neas indicadas w rite significa que podemos usar el comando en el formato w o en el for mato write gt gt es un elemento opcional Si se incluye y luego se incluye el nombre de un fichero el contenido actual del buffer se grabar al final del fichero indicado sin borrar el contenido previo del mismo NombreFichero Es un argumento casi siempre opcional S lo es obligatorio en el caso de que estemos editando un buffer que no est asociado a ning n fichero en cuyo caso antes de grabarlo por primera vez hay q
146. roducido el comando borrar que es la letra d de delete este no se ejecutar inmediatamente sino que esperar hasta que escribamos los caracteres representativos del mbito u objeto al que hay que aplica el comando As por ejemplo podemos borrar toda una l nea dd una palabra dW el p rrafo entero dap etc El mbito de actuaci n de un comando con mbito puede fijarse de cuatro maneras 1 Mediante una operaci n de movimiento del cursor El comando se aplicar al texto comprendido entre la posici n actual del cursor y la posici n alcanzada por el cursor tras su movimiento 2 Mediante un objeto de texto al que el comando debe aplicarse v ase la sec ci n 2 3 1 p gina 22 Cap tulo 2 Las nociones fundamentales de Vim 3 Indicado manualmente mediante la activaci n del modo visual El comando se aplicar a la porci n de texto que hayamos seleccionado manualmente v ase la secci n 2 3 2 p gina 24 4 Indicado manualmente mediante el establecimiento de un rango en l nea de comandos v ase la secci n 2 3 3 p gina 26 En los dos primeros casos el mbito se especifica despu s del comando en los ltimos el mbito se especifica antes que el comando En todo caso queda claro que esta caracter stica de Vim combinada con la am plitud de comandos para mover el cursor y de objetos de texto reconocidos es una de las claves de la potencia y elegancia de Vim Mediante un simple movimien
147. s cuando se empieza a trabajar con Vim es equivo carse de modo empezar a escribir algo creyendo que estamos en un modo cuando en realidad est bamos en otro modo distinto Por ello es conveniente una mane ra de saber en qu modo estamos y para ello Vim facilita la opci n showmode mediante la que podemos activar la informaci n sobre el modo es decir que en la ltima l nea de la pantalla se nos diga en qu modo estamos En la mayor a de las instalaciones de Vim showmode viene activado por defec to Si no fuera as para activarlo basta con en el modo normal ejecutar el siguiente comando set showmode y si lo que queremos es desactivar esta opci n lo que hay que escribir es set nowhowmode De todas formas t ngase en cuenta que showmode nos informa del modo s lo cuando este modo no sea el modo normal Es decir si activado showmode vemos en la esquina inferior izquierda el nombre de un modo ese es el modo en el que estamos Si no vemos nada significa que estamos en el modo normal 2 2 Comandos de Vim En el modo normal las pulsaciones de teclado son interpretadas como coman dos Cualquier cosa que queramos hacer en Vim y que no sea exactamente intro ducir texto es un comando De hecho incluso la introducci n de texto es en realidad consecuencia de alguno de los comandos que activan el modo de inserci n Podemos distinguir dos tipos b sicos de comandos Los de ejecuci n inmediata y los de l nea de com
148. s el nombre de una de estas opciones puede tener varios significados para Vim Por ejemplo number Para asegurarnos de que se nos muestre la ayuda correcta hay que encerrar el nombre de la opci n entre ap strofes Un n mero de error En ocasiones al ejecutar ciertos comandos Vim devuel ve un mensaje de error que empieza siempre por la letra E seguida del n mero de error As help E37 nos informar sobre el significado del error 37 5En el caso de los comandos que funcionan de modo especial en el modo visual de bloques para pedir ayuda sobre ellos hay que usar el prefijo v_b_ Cap tulo 2 Las nociones fundamentales de Vim 2 1 Modos de Vim Los editores de texto reciben las instrucciones del usuario b sicamente a trav s del teclado Por esta v a el usuario puede intentar insertar texto en su documento o solicitar del programa que realice cierta acci n o comando Los distintos editores de texto utilizan diferentes procedimientos para poder distinguir ambos casos es decir para poder interpretar adecuadamente lo que el usuario vaya tecleando Los tres procedimientos fundamentales para ello son el men las teclas de cambio y los modos El men significa que en primer lugar los comandos se asocian a op ciones de un men y en segundo lugar se asigna una tecla a la activaci n del men normalmente F10 de tal modo que tras la pulsaci n de esa tecla lo que el usuario teclee se interpretar como una s
149. s ficheros en memoria intentamos pasar de uno a otro next En todos estos casos debemos guardar los cambios antes o indicar mediante el car cter que queremos descartar los cambios 8 2 Abrir y guardar ficheros 8 2 1 El comando edit De acuerdo con lo anterior abrir un fichero significa leer desde del disco el contenido de un fichero y cargarlo en un buffer de memoria que ser lo que editemos y guardar ficheros significa copiar en el disco el contenido del buffer de edici n El comando para abrir ficheros es e dit NombreFichero En la forma de escribir este comando he intentado transmitir que el mismo se puede usar de dos maneras como e y como edit Para abrir un fichero hay que indicar obligatoriamente su nombre aunque no es preciso que el fichero que se indique exista realmente Si no existe se crear un buffer vac o que se grabar en el disco la primera vez que se grabe dicho buffer Si en el momento de ejecutar el comando edit est bamos editando un buf fer que ha sufrido modificaciones desde la ltima vez que se guard en el disco hay que grabar tales modificaciones con w rite v ase el pr ximo ep grafe o descartarlas mediante e dit es decir e 0 edit Otra posibilidad es ocultar el fichero que actualmente se est usando Para ello se usa el comando hide edit fichero cuyo efecto es ocultar el buffer actual y abrir un buffer con fiche
150. se muestran numerados Para cada buffer adem s se muestran a su izquierda ciertos indicadores de estado y a su derecha el n mero de l nea en el que se encuentra o encontraba el cursor Estos indicadores son Ebuffer es el buffer actualmente activo l El buffer est cargado y visible h El buffer est cargado pero oculto El buffer es de solo lectura El buffer ha sido modificado El buffer no es modificable El buffer ha sido cerrado Para editar uno de los buffers de la lista por su n mero basta con el comando buffer Num donde Num es el n mero asignado al buffer en la lista Si en lugar de buffer escribimos sbuffer Num el buffer se abrir en una nueva ventana Tambi n podemos ir movi ndonos entre los distintos buffers con los comandos bnext bprevious bfirst y blast de modo similar al caso de tener abiertos varios ficheros simult neamente PE ABR Cap tulo 8 Trabajo con ficheros La lista de buffers es un procedimiento alternativo para abrir y cerrar ficheros en Vim porque podemos conseguir esos resultados por el procedimiento de a adir o eliminar expresamente un buffer de la lista Para a adir un buffer se usa el comando badd fichero y para eliminarlo se usa bdelete N mero donde N mero es el n mero asignado al buffer que se quiere eliminar Tambi n es posible eliminar simult neamente varios buffers indicando sus n meros como un rango e indicar med
151. sici n 9 3 Ajustar el tama o de las ventanas o o QA Cerrar VENTANAS a E a Ys Comandos para la visualizaci n 10 1 Resaltado de sintaxis e 10 1 1 Reconocimiento de sintaxis e e 10 1 2 Ajustedecolores e 10 1 3 Desactivar el reconocimiento de sintaxis 10 2 Plegado de documentos e 10 2 1 Comandos para plegar a 10 2 2 Guardar y restaurar pliegues o 10 2 3 M todos de plegado 0 o e ndice general IV Otros aspectos de Vim 11 Utilidades adicionales 11 1 Recuperaci n despu s de una ca da del sistema 11 1 1 Ficheros swap de Vim 11 1 2 Otras cuestiones relacionadas con los ficheros swap 11 2 Conexi n con comandos del sistema operativo 11 3 Recordar el lugar en el que abandonamos Vim 11 4 Comprobar diferencias entre dos ficheros con Vimdiff 11 5 Grabar y reproducir comandos 11 6 Autocomandos 12 Ss Of gt lt Personalizaci n de Vim 12 1 El fichero de personalizaci n de Vim 12 2 Variables de fichero 12 3 Macros de teclado Ap ndices El alfabeto de Vim Nombres de las teclas en Vim bre Un ejemplo de todos los mbitos posibles AE 89 105 107 GNU Free Documentation License Licencia GNU para Documentaci n Li 110 Parte I Introduccion Sobre esta gu a La presente g
152. stro c digo fuente mediante in clude a CTRL X CTRL T Palabras de un thesaurus a CTRL X CTRL Tareas tags a CTRL X CTRL V Comandos de Vim de l nea de comandos Las palabras para cada uno de estos autocompletados se extraen de lugares distintos Los nombres de ficheros se extraen del directorio actual 7 2 6 Abreviaturas Una abreviatura es una palabra que al ser tecleada como palabra independiente se expande en otra Para usar esta habilidad es preciso primero indicar a Vim la existencia de la abreviatura lo que puede hacerse mediante comandos individuales o lo que es m s normal en un fichero de inicializaci n El comando para establecer una abreviatura es iabbrev abreviatura expansi n Por ejemplo iabbrev jal Joaqu n Ataz L pez escribir mi nombre completo cada vez que teclee mis iniciales En las abreviaturas cuyo comando tambi n se puede escribir iab la ex pansi n no se produce a no ser que la abreviatura se haya introducido como una sola palabra En el ejemplo anterior yo puedo escribir el verbo jalar que no se producir ninguna expansi n aunque empiece por jal Incluso escribir jal entre comillas impide la expansi n Parecido al comando iabbrev es una forma del comando abbreviate Este comando establece abreviaturas que funcionan tanto en el modo normal como en el modo de inserci n Por el contrario iabbrev s lo funciona en el modo de inserci n mient
153. sual con una de ellas se pulsa otra de ellas el modo visual se mantendr pero se activar el tipo de modo visual correspondiente a la tecla que se acabe de pulsar As si iniciamos el modo visual con una v y tras seleccionar unas l neas pulsamos CTRL V la selecci n cambiar a selecci n por bloques 75 Cap tulo 2 Las nociones fundamentales de Vim 2 3 3 Indicaci n manual de rangos En Vim un rango es una selecci n de l neas indicada manualmente Algunos comandos admiten este procedimiento para determinar su mbito de actuaci n El formato para indicar un rango es sencillo se indica el n mero de la primera l nea afectada y el n mero de la ltima l nea separando ambos n meros por una coma aunque tambi n puede indicarse s lo una l nea si no se quiere que el comando afecte a ninguna otra A las l neas podemos referirnos por su valor absoluto empezando por 1 pri mera l nea del documento pero tambi n podemos referirnos a algunas l neas con cretas mediante ciertos s mbolos que las representan Concretamente tanto por ciento Representa todas las l neas del documento d lar Representa la ltima l nea del documento punto Representa la l nea en la que actualmente est el cursor Aunque una de las caracter sticas m s poderosas de la indicaci n de rangos es que en ellos podemos referirnos a las dos l neas delimitadoras mediante los siguientes procedimie
154. tar algunos comandos genera ventanas adicionales Por ejemplo cuando se ejecuta el comando help En esta secci n se ver como gestionar esas distintas ventanas 9 1 Crear ventanas 9 1 1 Comandos expresos de creaci n de ventanas Podemos crear ventanas horizontales o verticales Para crear ventanas horizon tales el comando es split y para crearlas verticales vsplit Ejecutando estos comandos sin ning n argumento en las ventanas reci n crea das se seguir mostrando el mismo buffer pero en cada una de ellas podremos tener a la vista una parte distinta de l Ahora bien si a estos comandos les damos como argumento el nombre de un fichero en la nueva ventana se cargar dicho fichero Para crear una ventana nueva asociada a un buffer tambi n nuevo es decir vac o y no vinculado a ning n fichero los comandos son new para crear una ventana horizontal de ese tipo y vnew O vertical new para hacerlo en una ventana vertical 9 1 2 Creaci n de ventanas como consecuencia adicional de ciertos comandos Una forma r pida de asignar una ventana distinta a cada uno de los ficheros en edici n para el caso de que se haya llamado a Vim con una lista de ficheros es el comando all 0 muy parecido el comando unhide que abre una ventana para cada fichero oculto Este comando admite un argumento que limita el n mero 80 Cap tulo 9 Ventanas de ventanas que se podr n abrir Por ejemplo
155. tesis llaves o corchetes muestra con qu car cter coinciden S DE L NEA Y TABULADORES Las l neas anchas no se ven enteras Mantiene para tabstop su valor por defecto Saltos blandos de tabulador Es decir los espacios en blanco a insertar cada vez que se pulse la tecla TAB Tama o para sangrado con los comandos lt gt El tabulador no inserta verdaderas tabulaciones sino espacios en blanco al modo de Emacs Ancho de linea Respetar automaticamente el sangrado de la linea precedente Funcionamiento de la tecla retro runtime macros justify vim Carga el paquete justify que habilita el B SQUEDAS set hlsearch N comando _j para justificar texto Iluminar todas las apariciones de la cadena buscada set ignorecase smartcase Ignorar may sculas y min sculas salvo si se set incsearch n usan may sculas en la cadena de b squeda B squeda incremental La a oro de mis tiempos con Emacs 098 Cap tulo 12 Personalizaci n de Vim COMANDOS PROPIOS Y ABREVIATURAS map lt F3 gt gqap vap_j Justifica un p rrafo Se ver que hay varios comandos la mayor a de los cuales se explican en al g n lugar de esta gu a En realidad gran parte de estos comandos est n en el fichero vimre general del sistema En el personal s lo deber an estar aquellos que modifi can para cada usuario dicho funcionamiento global Aun as he incluido alguno de los comandos m s corrientes por s
156. this License will not have their licenses terminated so long as such parties remain in full compliance 115 Cap tulo D Licencia GNU para Documentaci n Libre 10 FUTURE REVISIONS OF THIS LICENSE The Free Software Foundation may publish new revised versions of the GNU Free Documentation License from time to time Such new versions will be similar in spirit to the present version but may differ in detail to address new problems or concerns See http www gnu org copyleft Each version of the License is given a distinguishing version number If the Document specifies that a particular numbered version of this License r any later version pplies to it you have the option of following the terms and conditions either of that specified version or of any later version that has been published not as a draft by the Free Software Foundation If the Document does not specify a version number of this License you may choose any version ever published not as a draft by the Free Software Foundation ADDENDUM How to use this License for your documents To use this License in a document you have written include a copy of the License in the document and put the following copyright and license notices just after the title page Copyright YEAR YOUR NAME Permission is granted to copy distribute and or modify this document under the terms of the GNU Free Documenta tion License Version 1 2 or any later version published by the Free S
157. to del cursor y m s concretamente el movimiento car cter a car cter o l nea a l nea es decir el que se suele hacer con las teclas de flecha Ahora bien si cada vez que hay que mover el cursor es preciso levantar la mano Hpo Cap tulo 3 Comandos para el movimiento del cursor del teclado normal para llevarla hasta las flechas y luego devolverla a su lugar de inicio se pueden llegar a perder literalmente horas en estos movimientos pero si las teclas para mover el cursor est n literalmente al alcance de la punta de los dedos se ahorrar un tiempo precioso No olvide el lector que los viejos usuarios de Unix al igual que los viejos rockeros tienen sus man as y una de ellas es el evitar p rdidas injustificadas de tiempo Esta raz n explica tambi n el porqu se han escogido las teclas hjkl para los cuatro movimientos b sicos del cursor Normalmente la tecla que ejecuta un comando es la inicial del nombre del mismo en ingl s pero aqu no estas teclas se han elegido por su situaci n en el teclado exactamente en la l nea central y en el lugar en el que reposan los dedos de la mano derecha de un mecan grafo profesional cuando no est escribiendo m s rapidez imposible Esa raz n llev a elegir como teclas para los movimientos b sicos hjkl El asignarle a cada una de ellas uno de los cuatro movimientos responde a otras razo nes la h es la que est m s a la izquierda y por ello mueve a la izquierda la
158. to imprevisto hay que consultar la ayuda de estas opcio nes y asegurarse de que tienen el valor correcto En ocasiones alguna de las utilidades externas puede alterar a la visualizaci n de la pantalla sin que Vim se percate de ello En tal caso para redibujar la pantalla hay que pulsar CTRL L En fin adem s de estos comandos Vim incorpora como comandos propios al gunos comandos del shell como cd 1s grep Algunos de ellos act an sobre variables internas de Vim similares a las de la shell otros capturan el re sultado y lo integran en el buffer otros solamente muestran el resultado de dichos comandos 11 3 Recordar el lugar en el que abandonamos Vim Cada vez que Vim termina su ejecuci n almacena en su fichero de configu raci n informaci n sobre los ficheros que se estaban editando y donde estaba el cursor en ellos Podemos recuperar dicha informaci n simplemente tecleando N mero donde n mero es un d gito del 0 al 9 correspondiente a la sesi n de Vim a la que queremos referirnos siendo 0 la m s reciente As 0 reci n iniciado Vim nos dejar exactamente como est bamos cuando terminamos la ltima sesi n Si queremos recordar una sesi n de trabajo concreta con independencia de si fue o no la ltima podemos almacenarla como tal mediante el comando mksession fichero donde fichero es el nombre del fichero en el que la sesi n se grabar Grabar una sesi n significa almacenar toda
159. u a contiene un resumen de los comandos m s habituales de Vim Es algo m s amplia que su tutorial pero no tanto como la totalidad de su docu mentaci n De hecho su contenido en realidad cubre los dos primeros apartados de la ayuda de Vim llamados respectivamente Iniciaci n en Vim y Edici n efectiva No cubre otras partes como ajuste funciones especiales para programa dores edici n de la l nea de comando uso del GUI escritura de scripts funciones y expresiones etc Es decir se atiende exclusivamente a lo necesario para empezar a escribir do cumentos y se ampl a hasta ciertos aspectos que nos permiten hacernos una idea de la potencia y posibilidades de Vim Pero no va m s lejos de all La gu a surgi cuando me decid a aprender el uso de Vim La ayuda de Vim es bastante completa pero por un lado est en ingl s idioma que leo bastante bien aunque me exige un nivel de concentraci n superior al que necesito para leer en mi lengua natal y por otro tiene un exceso de palabras Por lo tanto conforme iba leyendo el manual fui escribiendo una especie de s ntesis de cada uno de los temas que adem s orden seg n mi criterio El resultado de todo lo anterior es esta gu a del usuario Ha sido escrita para m mismo y se basa por lo tanto en la versi n de Vim que yo tengo instalada se trata de la versi n 6 3 tal y como este se instala en un Debian Sarge Hay versiones de Vim para otros sistemas operativos y a
160. uando se selecciona texto De hecho este modo es el equivalente a la selecci n de texto en esas otras aplicaciones ya que una vez que se ha marcado una porci n de texto el comando que a continuaci n se ejecute afectar exclusivamente a dicha porci n El modo de selecci n es muy parecido al modo visual y normalmente se iden tifica con l El modo de reemplazo equivale a lo que en otras aplicaciones se llama sobre escritura es decir lo que vayamos escribiendo en lugar de insertarse en el docu mento va sustituyendo a su contenido previo 2 1 3 Teclas para cambiar entre los modos Estas son las primeras teclas que hay que aprender por lo menos las que activan los modos normal y de inserci n porque son fundamentales En ellas hay que tener 14 Cap tulo 2 Las nociones fundamentales de Vim en cuenta que Vim al igual que casi todas las aplicaciones nacidas para el mundo Unix distingue entre may sculas y min sculas ESC Activa el modo normal Tambi n sirve para anular la introducci n de un comando y en general para interrumpir una acci n que se est ejecutando i Activa el modo de inserci n Si consideramos que el modo de l nea de comandos es distinto del modo normal este car cter lo activar a v V Activan el modo visual gh gH Activan el modo de selecci n R Activa el modo de reemplazo INS Desde los modos normal y de reemplazo activa el modo de inserci n desde este activa el modo d
161. ue establecer esa asociaci n proporcionando un nombre de fichero Para m s detalles sobre el argumento NombreFichero v ase a continuaci n Normalmente en Vim un concreto buffer de edici n est asociado a un fiche ro de modo que ejecutando write sin ning n dato adicional se grabar dicho buffer en dicho fichero Ahora bien en ocasiones nos puede interesar cambiar la asociaci n entre el buffer y el fichero Para esta operaci n en Vim se distinguen las siguientes posibilidades Cambiar la asociaci n del buffer sin guardar nada en el disco Para ello se usa el comando file NuevoNombre Este comando no escribe nada en el disco pero la pr xima vez que ejecutemos write el fichero se grabar con el nuevo nombre Guardar en un fichero distinto sin cambiar la asociaci n del buffer es decir de tal modo que sigamos editando el mismo fichero que antes Para ello bas ta con ejecutar write NuevoNombre el buffer se grabar con ese nuevo nombre pero seguir asociado al nombre anterior de manera que la pr xima vez que se ejecute w sin argumento se guardar n los cambios en el fichero original Si el fichero NuevoNombre ya existe se producir una advertencia de error a no ser que hayamos usado el comando en la forma write Cambiar la asociaci n del buffer y guardarlo en el disco con el nuevo nom bre Para ello se usa el comando saveas NuevoNombre Este comando equivale a usar primer
162. ue sustituya al buffer anterior En este caso CTRL O nos llevar al documento anterior en el lu gar en el que estaba el cursor cuando se produjo el salto es decir el cambio del documento Cap tulo 3 Comandos para el movimiento del cursor Hay una diferencia entre saltar con el comando espec fico para las marcas y hacerlo mediante CTRL O y CTRL I y es que en este segundo caso el salto no se considera movimiento del cursor a efectos de determinaci n del mbito de un comando Es decir si pulsamos d se borrar todo lo que haya entre el cursor y el origen del ltimo salto Pero pulsando dCTRL 0 no borraremos nada 4 Parte II Modificaci n del texto 42 Cap tulo 4 Comandos elementales de manipulaci n del texto en el modo normal Ya sabemos que para insertar texto nuevo en Vim hay que activar el modo de inserci n y simplemente escribirlo Por lo tanto los comandos para manipular el texto se refieren sobre todo a aquellos que desde el modo normal provocan que se borre una porci n del texto y a los que insertan texto sin necesidad de pasar al modo de inserci n 4 1 Comandos para borrar texto 4 1 1 Los comandos d dd c cc y J El comando general para borrar texto en Vim es el comando d cuyo nombre procede de la palabra inglesa delete y que tiene el siguiente formato general nimero d Ambito Donde N mero es un valor opcional que indica e
163. ue usar las teclas normales de movimiento del mismo teclas de flecha RePag AvPag etc La combinaci n CTRL Izquierda y CTRL Derecha mueve el cursor por pala bras CTRL Inicio y CTRL Fin lo llevan respectivamente al principio y al fin del buffer 7 2 3 Comandos especiales para la inserci n de texto Para insertar texto adem s de escribirlo disponemos de los siguientes coman dos Cap tulo 7 Manipulaci n del texto en los modos visual y de inserci n 7 2 3 1 Los comandos generales de inserci n CTRL A Inserta el mismo texto que se insert la ltima vez que estuvimos en el modo de inserci n CTRL Hace lo mismo que CTRL A pero adem s vuelve al modo normal Es decir equivale a pulsar primero CTRL A y luego ESC CTRL Y Inserta el car cter que est exactamente encima del cursor CTRL E Inserta el car cter que est exactamente debajo del cursor en la l nea infe rior CTRL R Inserta el contenido del registro correspondiente a la tecla que se pulse a continuaci n Si no queremos que el texto del registro sea sangrado hay que pulsar CTRL R CTRL O y si queremos que el propio Vim calcule el sangrado de lo que se insertar hay que pulsar CTRL R CTRL P seguido claro est de la tecla del registro 7 2 3 2 Insertar caracteres especiales La tecla CTRL V provoca que el car cter que se pulse a continuaci n se in terprete literalmente con independencia de cualquier significado especial que se le haya asign
164. uivale a lo que otras aplicaciones de tratamiento de textos llaman selecci n o activaci n de bloques La idea es ir moviendo manualmente el cursor de tal manera que el texto vaya quedando marca do y esa marca sea visualmente reconocible el pr ximo comando que se ejecute afectar s lo al texto marcado M s adelante veremos los completos comandos de movimiento del cursor con que Vim cuenta En la filosof a de Vim se encuentra el que s lo hay que usar el mo do visual cuando queramos referirnos a una porci n de texto que no se corresponda con ninguna de las unidades conocidas por Vim Por ejemplo si queremos borrar parte de una palabra y parte de la siguiente o si en una tabla queremos borrar una columna entera En Vim el modo visual se puede activar mediante las teclas v V y CTRL V La diferencia est en que activando el modo visual con V la selecci n se har siempre por l neas completas y usando CTRL V se activar la selecci n por blo ques es decir la selecci n ir formando una especie de recuadro lo que es extre madamente til cuando se trabaja con tablas y se quiere dar una orden que afecte a toda una columna Cuando estamos trabajando en el modo visual la selecci n va siguiendo al cursor por el extremo en el que iniciamos el movimiento Podemos usar cualquiera de los comandos de movimiento del cursor aunque debe tenerse en cuenta que si el modo visual se inici pulsando CTRL V el comando
165. unto con los comandos de ejecuci n inmediata existe un segundo grupo de comandos llamados de l nea de comandos su peculiaridad es que estos coman dos no est n representados por una o varias teclas sino que tienen un nombre propiamente dicho y para ejecutarlos hay que escribir su nombre Antes de introducir uno de estos comandos hay que advertir a Vim que quere mos escribir el nombre de un comando para que conforme vayamos tecleando el nombre no interprete nuestras pulsaciones como comandos de ejecuci n inmedia ta El comando para advertir a Vim que queremos ejecutar un comando escribiendo su nombre es el comando dos puntos Desde un punto de vista estricto m s que de comandos de l nea de comandos debe r a hablarse de un modo especial distinto del modo normal en cuyo caso la tecla de los dos puntos ser a la que activar a este modo de la misma manera que la i activa el modo de inserci n y pulsando ESC se vuelve al modo normal Qu diferencia hay entre hablar de comandos especiales o hablar de un modo es pecial La verdad es que no demasiada pero alguna hay Por ejemplo hay ciertas Cap tulo 2 Las nociones fundamentales de Vim combinaciones de teclas que funcionan s lo cuando se est en la l nea de coman dos o que en ella funcionan de manera distinta Para pedir ayuda sobre el teclado en la l nea de comandos hay que usar un prefijo c_ de la misma manera que hay que usarlo para pedir ayuda
166. ursor un car cter a la derecha es decir justo detr s de la palabra Finalmente se escribe y se vuelve al modo normal En el ejemplo anterior la macro se ha asignado a una sola tecla Podemos asignarla a m s de una tecla siendo muy normal el asignar comandos a la tecla Y seguida de alg n car cter en cuyo caso cuando queramos ejecutar el comando deberemos teclear ambas teclas con cierta rapidez para que Vim interprete que van juntas El comando map no seguido de ning n argumento lista las asociaciones de teclado establecidas por este procedimiento El comando map se parece mucho a la grabaci n de comandos mediante el comando q aunque hay varias diferencias entre ellos La m s importante es que mientras el primero sobreescribe los comandos est ndar de Vim el segundo no lo hace ya que un comando grabado con q nunca se asocia directamente a una tecla sino a un registro que es llamado mediante el comando Con esto quiero decir que mientras map Q gqap asocia directamente el comando gqap a la tecla Q de tal modo que el comando anteriormente asociado a dicha tecla se pierde la secuencia qQgqapq asocia la ejecuci n de gqap al comando EQ no a Q propiamente dicho 101 Parte V Ap ndices 102 Ap ndice A El alfabeto de Vim En el modo normal cada una de las letras del alfabeto ingl s est asignada a alg n comando tanto en su versi n
167. valen a los comandos similares sin la g Es decir si por ejemplo el comando 0 lleva el cursor al principio de la l nea el comando g0 llevar el cursor al principio de la l nea que se ve en pantalla Por lo tanto cuando las l neas que se ven en pantalla coinciden exactamente con las l neas reales no hay diferencia entre los comandos g0 g g gk y gj de un lado y los comandos 0 k y j de otro Junto a estos comandos para moverse entre l neas se dispone de N merojG Lleva el cursor a la linea indicada a gg Lleva el cursor a la primera l nea del documento G Lleva el cursor a la ltima l nea del documento l Habr quienes al leer lo anterior no terminen de entenderlo sobre todo si est n acostumbra dos a manejar editores de texto del estilo de los usuales en Microsoft Windows Para una mayor explicaci n v ase lo dicho en la secci n 5 1 1 p gina 52 23 Cap tulo 3 Comandos para el movimiento del cursor Se ver que gg y G act an sobre el documento en s mismo considerado Si lo que queremos es movernos entre las distintas l neas que en un momento dado son visibles en la pantalla hay que usar los siguientes comandos a H Lleva el cursor a la primera l nea que se ve en pantalla a M Lleva el cursor a la l nea central de la pantalla L Lleva el cursor a la ltima l nea de la pantalla Por ltimo en cuanto al movimiento de
168. vez que se edit el fichero en edici n si mult nea de varios ficheros El lugar donde empez el ltimo cambio El lugar donde termina el ltimo cambio lt El inicio de la selecci n en el modo visual gt El final de la selecci n en el modo visual Por lo tanto mediante estas marcas podemos ir con facilidad a esos lugares predeterminados 3 3 3 Navegar por el documento El comando mueve el cursor entre dos puntos Pero para navegar entre los distintos lugares en los que se estableci una marca son preferibles los comandos CTRL O y CTRL I o TAB El primero es una 6 no un cero vuelve a la posici n anterior y el segundo regresa a la posici n siguiente Equivalen a la flecha atr s y flecha adelante de un navegador web con la diferencia de que estos comandos no se mueven entre distintas p ginas sino entre distintos puntos del documento a los que hemos ido saltando durante la edici n o tambi n entre los distintos documentos que hemos ido editando La O que se usa en CTRL O es la inicial de Older porque salta a la marca anterior La I de CTRL I se eligi porque la I es la tecla que est junto a la o en el teclado est ndar La tecla Tab tambi n realiza esa funci n Pulsando sucesivamente CTRL O podremos recorrer hacia atr s la lista de sal tos realizados que se obtiene ejecutando el comando jumps A estos efectos tambi n se considera salto la apertura de un nuevo documento q

Download Pdf Manuals

image

Related Search

Related Contents

7 - sew-eurodrive  Baixar manual  印刷用ファイル [PDF形式]  Linear actuators GSX series - manual  次第(PDF形式:33KB)  MANUAL DE INSTRUCCIONES TESTORES DE PAR  

Copyright © All rights reserved.
Failed to retrieve file