23/1/2005

Repetició de comanes al vim

Escrit per adriA

Al vim, per repetir l’últim canvi fet en el text d’una manera ràpida només cal prémer “.” (el punt). Si, per exemple, volem afegir la mateixa paraula en quatre llocs diferents del text, l’escrivim un cop i després ens desplacem als llocs on volem tornar a inserir-la i prement el “.” ens estalviem haver de picar de nou la paraula.

Sovint, però, els canvis que volem repetir són més complexos - per exemple, volem fer, no una, sinó varies modificacions disperses en una frase que apareix unes quantes vegades al text. Quan per fer un canvi ens cal passar de mode comana a mode inserció no podrem fer servir el punt per repetir tota la seqüència de modificacions. El que ens cal és gravar totes les tecles premudes per fer el canvi en un registre del vi, i re-executar-les més tard:

1) Abans de començar a fer el primer canvi, premem la tecla “q” seguida del nom d’un registre (per exemple, “qa"). A la cantonada esquerra inferior del terminal ens apareix la paraula recording per indicar que s’estan enregistrant les comanes i canvis entrats.

2) Fem les modificacions desitjades.

3) Per acabar l’enregistrament tornem a prémer la tecla “q".

4) Per re-executar les modificacions enregistrades fem servir @nom_registre (seguint amb l’exemple anterior, “@a"). Si volem re-executar les comanes enregistrades més d’un cop podem fer-ho ràpidament amb “@@", que repetirà la darrera comana “@nom_registre” feta servir.

L’increment de productivitat que s’aconsegueix enregistrant i re-executant canvis d’aquesta manera tan senzilla és considerable. A vegades em sap greu que alguns companys de feina i amics es resisteixin a fer servir un editor de textos potent com el vim i que es pensin que el món s’acaba en copy-pastes i expressions regulars.