Archive

Gedit y su Modelines plugin

Estoy muy contento ya que hice un gran descubrimiento en gedit!

Si conoces a algún old-school coder linuxero, habrás observado que muchos de ellos prefieren no usar <em>tab</em> para indentar. O acaso será me ha tocado escucharlos quejarse mucho de ellos? Sepa la goma!

La cosa es que siempre se han quejado de que, como los tabs son un espacio indefinido, pueden llegar a desfigurar el código.

Por ejemplo, si tu defines, en vim, una anchura de 8 espacios para tus <em>tab</em>, el código hecho con 2 o 4 columnas en mente sobrepasará la barrera de las 80 columnas y eso desfigurará el código ya que, en la mayoría de los casos, lo wrappeará. Esto es pecado para algunos programadores de C.

Bueno, pues lo único que sé es que descubrí algo, y seguramente muchos de ustedes ya lo sabían, acerca de gedit.

En vim, emacs y kate, existe un método para forzar ciertos valores a ciertas opciones, éstos se llaman Modelines. En mi caso, voy a usar algunos modelines de vim para poner un ejemplo.

Digamos que escribiste tu código y lo indentaste para que quedara precioso! Lo hiciste teniendo una configuración de 4 columnas por <em>tab</em>. Bueno, pues a la hora que Piotr, de Russia, donde prefieren 8 columnas por , abra tu código, dirá: "Malditos mexicanos, porrr eso nadie quierrre leerrrr su código, hijos de su mamushka!!" ya que tu código se habrá desfigurado en su monitor.

Para evitar esto, lo que haces es poner unas lineas al final, en las cuales definiras un espacio de 4 columnas para tus <em>tab</em>. Esto hará feliz a Piotr y mantendrá el código de los mexicanos en alto nombre!

Un ejemplo real:

Archivo sin modlines para tí

<?php

if ( $x = 123456 ) {
        world_destruction( $x );
} else {
        echo "Due to a typo or something else, your password verification returned an error. I'm sorry, world destruction will need to wait.";
}

?>

Archivo sin modlines para Piotr

<?php

if ( $x = 123456 ) {
    world_destruction( $x );
} else {
    echo "Due to a mistype or something else, your password verification returned an error. I'm sorry, world destruction will need to wait.";
}

?>

Archivo con modlines para tí

<?php

if ( $x = 123456 ) {
    world_destruction( $x );
} else {
    echo "Due to a mistype or something else, your password verification
    returned an error. I'm sorry, world destruction will need to wait.";
}

/*
vim: set ts: 4
vim: set wrap
*/

?>

Archivo con modlines para Piotr

<?php

if ( $x = 123456 ) {
    world_destruction( $x );
} else {
    echo "Due to a mistype or something else, your password verification
    returned an error. I'm sorry, world destruction will need to wait.";
}

/*
vim: set ts: 4
vim: set wrap
*/

?>

Estas líneas de código, en caso de que no lo puedas ver así, definirán un espacio de 4 columnas por tab y activarán la función "wrap". Esto podrá ser leido por vim y por Gedit, siempre y cuando actives el plugin correspondiente.

Para mayor información en las opciones disponibles, ve a:

NOTA:

Al tiempo de escritura de este artículo, gedit solo soporta las siguientes opciones:

  • vim: et, expandtab, ts, tabstop, wrap, y textwidth
  • emacs: tab-width, indent-tabs-mode y autowrap
  • kate: tab-width, indent-width, space-indent, word-wrap y word-wrap-column

Favor de consultar la documentación de gedit

Este artículo fue basado en la versión: gedit 2.18.2