viernes, marzo 29, 2013

vim: Introducción a comandos (III)

A la hora de definir comandos en vim, se puede especificar rangos de líneas o contadores. Cuando se quiere definir un comando que acepte un rango de líneas se usa el parámetro ‑range. En función del valor que tenga este, tendrá un significado u otro: ‑range - por defecto la línea actual - , ‑range=% - por defecto todo el fichero -, ‑range=N, que indica que va a tener un número de línea, por defecto N y ‑count=N que indica una cuenta. Una particularidad es que vim comprueba que los rangos son correctos. Si el fichero tiene 1000 líneas, si se llama al comando usando un rango de líneas erróneo - por ejemplo, 100,10001Comando .- , vim dará un error y no ejecutará el comando.

Cuando se define el comando, hay una serie de sustituciones para los parámetros. En el caso del rango son <line1> y <line2>. Para el caso de la cuenta el parámetro que se utiliza es <count>. Un ejemplo sencillo es un comando RExp, que admite un rango y lo imprime:

:command ‑range Rexp :echo <line1> <line2>

Para ejecutar el comando anterior, en modo comando se introduce 10,20Rexp1, y si el fichero tiene más de 20 líneas imprimirá 10 y 20. Si se llama sin parámetros, imprimirá el rango que corresponde a la línea actual.

Para el caso de la cuenta, se utiliza el texto de sustitución <count>. Si se quiere definir un comando RExp1, que devuelva el valor de cuenta especificado, por defecto el valor 10:

:command ‑range=10 RExp1 :echo <count>

Si se llama sin parámetros, imprimirá el valor por defecto 10, si se le especifica una cuenta, imprimirá el valor que se le pasa: 20RExp1, imprimirá el valor de 20.

Technorati Tags:

No hay comentarios: