Dic
28
2009
tatai
He decidido que voy a realizar una serie de posts con aquello que tanto me han pedido unos cuantos amigos, que “enseñe algunos de esos comandos que me sé”. La verdad es que la mayoría de ellos son comandos sencillos pero que, usando un par de opciones y concatenando unos con otros, se pueden hacer verdaderas maravillas.
Y para empezar, un par de trucos muy sencillos para vim con lo que sé que más de uno levantará los brazos al cielo con resignación, jeje. Se da por hecho que sabes cambiar entre los distintos modos: comando, edición, visual…
Resaltado de sintaxis
Con este comando podrás activar (como será el caso de la mayoría de vosotros) o desactivar (lo que yo prefiero, jeje), el resaltado de sintaxis -syntax highlighting- de los ficheros que estéis editando en vim.
Partiendo siempre en modo comando, podemos activar o desactivar:
Para activar el resaltado de sintaxis
:set syntax on
Y para desactivar
:set syntax off
Tienes que tener en cuenta que para reconocer a que lenguaje pertenece, vim se basa en la extensión. Si todavía no has grabado el fichero o tiene una extensión distinta a la que debería tener, no será capaz de identificar nada.
Indentación
Para la indentación, todo depende de gustos pero yo prefiero usar tabs y que el tamaño del tab (el número de espacios no físicos que ocupa) es de 8 columnas. Esta es la configuración por defecto.
Para activar la indentación, en modo comando hay que teclear:
:set autoindent
:set smartindent
En caso de querer desactivar cualquiera de las dos, tenéis que añadir el prefijo no- a la opción usando la misma sintaxis, es decir, usar “noautoindent” o “nosmartindent” respectivamente.
Más info
Del manual de vim
2 comments | tags: highlighting, sintaxis, vi, Vim | posted in Vim
Jun
21
2009
tatai
Voy a contar un par de sencillos comandos que os ayudarán si queréis migrar todos vuestros selectores dolar ($) a la nueva forma definida en mootools 1.2.3: document.id.
La primera forma es ejecutar un comando desde la línea de comandos. Todo lo que necesitas es tener instalado perl en tu sistema. Este es el comando (cambia fichero.js por el nombre de tu fichero javascript):
perl -i -pe 's/([^\$])\$\(/$1document.id(/g;' fichero.js
Quizás prefieras usar -i.old en vez de -i que hará una copia de tu fichero original fichero.js a fichero.js.old. De esta forma, mantienes una copia de tu fichero original.
Por supuesto este comando se puede usar con otros como find de modo que puedas migrar más de un fichero a la vez:
for i in $( find /path/a/tu/directorio/js -iname '*.js' ); do perl -i -pe 's/([^\$])\$\(/$1document.id(/g;' $i; done
Finalmente, para todos aquellos que como yo usen y prefieran vim, voy a mostrar como se hace el cambio con vim. Asegúrate que estas en el modo-comando (presiona varias veces la tecla <Esc>) y escribe:
:%s/\([^\$]\)\$(/\=submatch(1) . "document.id("/g
Y eso es todo! Disfruta de tu nuevo código que cumple con la especificación de compatibilidad entre frameworks javascript.
no comments | tags: command line, migrate, migration, mootools, perl, Vim | posted in Javascript, Mundo web, Vim, mootools
Jun
21
2009
tatai
I would like to show you a pair of easy command that will help you if you want to change all your dolar selectors ($) to the new defined document.id in mootools 1.2.3.
The first way can be executed from command line. All you need is having perl on your system. This is the command (change your_file.js to the filename that fits your needs):
perl -i -pe 's/([^\$])\$\(/$1document.id(/g;' your_file.js
Perhaps you will prefer to use -i.old instead -i that will copy your original file your_file.js to your_file.js.old. In this way, you get a backup of your original file.
Of course, this command can be used with others like find so you can migrate more files at once:
for i in $( find /path/to/your/js/files -iname '*.js' ); do perl -i -pe 's/([^\$])\$\(/$1document.id(/g;' $i; done
Finally, for those vim lovers like me, I would like to show you how to make this change inside vim. In command-mode (press <Esc> a pair of times) write:
:%s/\([^\$]\)\$(/\=submatch(1) . "document.id("/g
And that’s all! Enjoy your new brand cross-framework compliant code.
no comments | tags: command line, migrate, migration, mootools, perl, Vim | posted in Javascript, Mundo web, Vim, mootools
May
28
2009
tatai
Cuando queremos abrir varios ficheros a la vez desde la consola, la forma más habitual es la de escribir el comando vim y después añadir cada uno de los ficheros separados por al menos un espacio. De esta forma, mediante los comandos :next y :previous (recordar pulsar <Esc> antes de introducir comandos) podemos pasar de un fichero a otro.
Esto está bien cuando no te importa tenerlas en ventanas distintas, ¿pero y si queremos tenerlos todos a la vista a la vez? Bien, una de las formas es decirle a vim que no abra cada una en una ventana distinta, sino mediante horizontal splits, es decir, que si tenemos dos ficheros abiertos, cada uno ocupa la mitad de la pantalla (en horizontal).
Para conseguir esto, lo único que tenemos que hacer es escribir en la consola vim -o y luego todos y cada uno de los ficheros separados al menos por un espacio. Es decir, lo haremos con la opción -o (letra o minúscula). Tal que así:
vim -o fichero1.txt fichero2.txt fichero3.txt
Bien, todo tiene un límite. Vim abrirá tantos ficheros como le indiqueis… pero es evidente que si abrís muchos a la vez, no tendremos espacio para verlos.
Ideal para usar con algunos scripts

vim con la opción -o
no comments | tags: abrir, editar, ficheros, vi, Vim | posted in Vim
Jul
22
2007
tatai
Leo en DiarioLinux sobre la interesante aplicación vimdiff. Es un diff de ficheros de modo que podemos extraer las diferencias que tienen varios ficheros entre sí, pero la gran diferencia es que lo veremos sobre un vim con un split vertical y con scroll en paralelo!
Es decir, en cada split nos muestra uno de los ficheros, indicando con colores los cambios y si nos desplazamos por el fichero hacia abajo, los splits se moverán simultáneamente para mostrarnos las mismas líneas en ambos ficheros. Lo más habitual es comparar un fichero con otro, pero permite comparar hasta con 3 versiones distintas más.
Tan fácil como teclear en la consola vimdiff y seguidamente los ficheros que queremos comparar separados con espacios. Es decir, la sintaxis es:
vimdiff file1 file2 [file3 [file4]]
También de forma equivalente, podemos llamarlo directamente desde vim con la opción -d:
vim -d file1 file2 [file3 [file4]]
La verdad es que existen varias aplicaciones para hacer esto de forma visual con las X, pero es la primera que he visto con la que se puede hacer por consola y por lo tanto, con independencia de donde estés, sólo hace falta una consola y un SSH. Reconozco que soy un fanático del vim, pero la verdad es que me ha parecido muy útil.
Lo mejor es probarlo

no comments | tags: diff, vi, Vim, vimdiff | posted in Linux, Vim