Este post fue publicado en el foro hace un par de meses, creo que es hora de que pase al blog, dudas, comentarios todo pueden hacerlo en los comentarios, por favor NO FLAME si no te agrada Vim solo retirate del post ๏
Me saltare la parte bรกsica porque se volverรก muy extenso si quieres o estas interesado en aprenderlo te recomiendo que desde la terminal ejecutes
$ vimtutor
Ahora si, sin mas comenzamos ๏
Macros en VIM
Tal vez no sea uno de los grandes misterios de vim pero es bueno saberlo vim tiene soporte de macros es posible almacenar macros de la a a la z ; para comenzar a grabar solo es necesario presionar q+letra para dejar de grabar presionamos q y para invocar la macro es algo como numero+@+letra.
Donde:
letra: Es una tecla de la a a la z.
numero: Es el numero de veces que repetiremos la acciรณn.
Esto nos facilitara muchas tareas repetitivas. Por ejemplo; Supongamos que tenemos estas lineas:
uno ejemplo uno dos ejemplo dos tres ejemplo tres cuatro ejemplo cuatro cinco ejemplo cinco
Queremos darle este formato:
'uno': 'ejemplo' 'uno'; 'dos': 'ejemplo' 'dos'; 'tres': 'ejemplo' 'tres'; 'cuatro': 'ejemplo' 'cuatro'; 'cinco': 'ejemplo' 'cinco';
Aquรญ es donde las macros nos facilitan todo ๏
Secuencia utilizada:
qa I ' [Esc] ea ': [Esc] wi ' [Esc] ea ' [Esc] wi ' [Esc] A '; [Esc] 0j q
Posteriormente colocar el cursor en la linea a cambiar y utilizar numero+@+letra en este caso usรฉ 4+@+a
Sustituir
Una herramienta muy importante en Vim es la de sustituir para ello nos situamos en Vim modo Normal presionando Esc posteriormente presionamos : y escribimos el comando digo comando porque no esta limitado a sustituciรณn. es muy similar a RegEx
Ejemplos:
El mas comรบn cambiar una cadena de caracteres en todo el documento:
Comando:
:%s/vim/Vim/g
Sustituye en todas las lineas vim por Vim nota: si no tuviera el signo % solo buscarรญa en la linea que estรฉs ubicado
Sustituir entre cierto rango acรก entre las lineas 3,5:
Comando:
:3,5s/Vim/VIM/g
De la linea 3 a la 5 sustituye Vim por VIM
Acรก noten que no hay una g al final este solo edita la primera palabra que coincide
Comando:
:3,5s/Vim/VIM
Con esta linea eliminamos todas las lineas que contengan un #
Comando:
:.,$g/#/d
de la linea actual . hasta el final del documento $ busca los numeral # y eliminalos d
Acรก un comando ordenar la secciรณn del archivo
Comando:
: 3,$sort
De la linea 3 hasta el final del documento ordenalo
Otros Comandos
Aquรญ el truco esta en el comando :r read lo que hace este como su nombre lo dice hahaha leer, podrรญas agregar el texto de otro documento, pero en este ejemplo agregamos el indicador ! que este por separado es ejecutar, es posible ejecutar un script desde el mismo vim para debugear o cualquier cosa que se te ocurra acรก un ejemplo:
Comando por orden de apariciรณn:
#Fecha: :r!date #Fecha con formato: :r!date +\%D #Listar directorios: :r!ls Documentos
Estoy usando comandos comunes pero vim toma la salida de cualquier comando y la inserta como texto en el documento.
Y Esto solo es una pequeรฑa parte aun falta masโฆ Y las cosas que desconozco hahahaha.
Selecciรณn
Por ultimo pero no menos importante es el estado Visual donde podemos seleccionar lineas para manipularlas fรกcilmente. Existen tres tipos de selecciรณn visual.
v Visual por caracteres
V Visual por lineas
control+v Visual por bloques
Seleccionar lo que esta dentro de un parรฉntesis:
v% Si estas en el inicio/final del parรฉntesis
vib Si estas dentro de los parรฉntesis
Selecciona lo que esta dentro de comillas dobles o sencillas:
vi' Selecciona comillas sencillas
vi" Selecciona comillas dobles
viB Selecciona todo lo que este dentro de las llaves
Selecciรณn por linea
ggVG Selecciona todo el documento
Aquรญ bรกsicamente es gg ir al inicio; entrar al selector visual V; e ir al final G.
Selecciรณn por bloque
control+v
[control] v e5j C [escribes el texto] [esc] [esc]
Y en este entras al selector visual por bloques controlv, avanzo al final de la palabra, y 5 lineas abajo 5j, borro la palabra con C escribo el texto a sustituir y presiono Esc Esc.
El otro es igual pero en lugar de c es algo como elimina y entra en modo insert utilizo i entra en modo insert I donde el puntero esta localizado.
Todo esto que explico tal vez parezca misterioso o algo por el estilo como vim ninja hahaha pero no es nada que no este en el manual de vim Vim tiene una de las mejores documentaciones que conozco para entrar a la documentaciรณn solo ingresen
:help
si necesitan algo en especifico
:help :w
Esto los llevara directamente a la secciรณn que habla de :w guardar.
Ahora siโฆ Feliz Vim gente. ๏
Creo que comenzarรฉ a usar Vim ๐
Excelente articulo gracias por compartirlo. No sabรญa lo de seleccionar por bloque. Saludos!
Emacs…, creo que alguien tenia que decirlo, asi que para que esperar mas :D, no, no es el inicio de un Flame, entre Emacs y Vim no puede caber discusion :D, esta bastante claro cual es superior, y no, no e Vim ;).
Sรญ, sรญ es el inicio de un flame. Cuidado con ese tipo de comentarios porque no tienen nada de objetivo. Ademรกs, no aporta en nada a lo que trata el artรญculo. Saludos.
Emacs! Emacs! Emacs! ๐
Emacs for the masses!
ยซ[…]creo que alguien tenia que decirlo[…]ยป Jajaja, +1!
Viste como es, viene uno que se hace el exรณtico y dice ยซcursores con flechas? WASD? No no, yo les mostrarรฉ el camino, es hjklยป y hay un montรณn que se prenden detrรกs >:D
@Blablabla: bien ahรญ, tu nick hace honor a tu chรกchara!
Una encuestica para ver cuรกl prefieren los lectores no vendrรญa mal.
ยกGenial! Vim es de lejos el mejor editor de texto. Ojala publiquen mas seguido en este sitio sobre dicho editor. Saludos.
Siempre tuve problemas para entender las macros en Vim, ahรญ en un ratito libre le doy una vuelta ๐
Nota: Para los usuarios de KDE, usen Vim-QT ๐
Gracias ๐
Por fin mi Galaxy Mini tendrรก una razรณn mรกs para vivir: no tengo EMACS, pero sรญ VIM.
Tomarรฉ en cuenta tus tips.
buena info gracias ๐
comparte tu vimrc esta muy entendible visualmente agradable :)!!! espero que me lo compartas :)!
Claro que lo hare ๐ deja preparo un post
Wow se ve muy bueno :)! jaja comenzare a practicar mas, y mas tu vimrc se ve muy bien O.o! espero que lo compartas porfavor ;)!
De hecho no es tanto vimrc, pero explicare que he hecho hahaha
jaja mucho mejor :)! asi todos aprendemos jaja gracias :)! ๐
Muy buenos consejos Wada. La verdad es que mis necesidades de programador son muy bรกsicas y quizรก por eso nunca he llegado a ver el potencial de Vim. No obstante me parece interesante lo que comentas. Intentarรฉ ponerlo en prรกctica cuando tenga que hacer alguna cosa.
Muchas gracias!
Excelente post! Aunque ya sabรญa estos tips muy bien explicado para los que no los conocรญan!
Una pequeรฑa ayuda para usuarios nuevos, ยซvimtutorยป se encuentra en inglรฉs, para aquellos que quieran el tutorial en espaรฑol, simplemente escriban ยซvimtutor esยป.
Amo vim, mi vida seria totalmente distintinta sin รฉl!
Hace 2 aรฑos que lo utilizo y cada dia me sorprendo mas =)
Saludos
P/D: El que quiera ver un ejemplo de configuracion .vimrc, los invito a ver el mio! =) https://github.com/jlgasparrini/dotvimrc