Archivo de la etiqueta: linum-mode

Un poco de… Emacs (V): números de línea

Introducción

En ocasiones, cuando estamos editando un archivo de texto, nos puede interesar saber el número de línea en el que nos encontramos. Si estamos tecleando código fuente nos puede interesar que se muestre a la izquierda el número de línea (aunque espero que no sea para usar instrucciones de tipo goto… :-P).

Vamos a ver cómo hacer éstas y otras funciones con los números de línea desde nuestro editor de texto favorito (emacs, por supuesto).

Contar líneas, palabras, caracteres

Emacs tiene varias funciones para contar líneas y palabras. Unas de las más útiles son:

count-lines-page

que nos muestra el número total de líneas y luego entre paréntesis muestra las líneas antes de la actual y las que hay después (ejemplo: 53 (50 + 3)).

Si queremos contar palabras y caracteres:

count-words

Esto nos indica el número de líneas, de palabras y de caracteres del documento.

Ambas funciones tienen la opción de usarse para una región (i.e., un fragmento de texto seleccionado): count-lines-region y count-words-region.

Mostrar número de línea actual

Si queremos que siempre que escribamos se muestre el número de línea en la barra de estado (modeline) podemos ejecutar en el minibuffer este comando:

line-number-mode

Esta función es de tipo toggle (conmutador), es decir, que cada vez que la ejecutamos conmuta, en este caso, el modo “número de líneas”. Así, si la ejecutamos una vez nos indicará que el modo de número de líneas está activado. Si la ejecutamos otra vez lo desactiva. La siguiente lo vuelve a activar, y así sucesivamente.

Con este modo, como decimos, el número de línea aparece en la barra de estado de emacs (modeline).

Conocer la línea actual

Si queremos conocer el número de línea actual y no tenemos activado el modo “line-number-mode” visto antes, podemos ejecutar esta función en el minibuffer:

what-line

y nos lo dirá (¡qué listo que es este editor! ;-)).

También existe la función what-cursor-position, que en este caso nos dirá en qué caracter está el cursor y qué posición ocupa en el documento.

Mostrar números de línea a la izquierda

Si lo que queremos es mostrar a la izquierda el número de la línea podemos usar uno de los muchos modos que han creado otros usuarios. Aquí tenéis una buena descripción de los modos y funciones disponibles referentes a numeración de líneas en emacs. En particular, yo uso yo uso line-num.el.

Este modo muestra, a la izquierda de cada línea, el número de la misma. Si queréis usar este modo, tenéis que tener el fichero con el código (*) del mismo en el directorio $HOME/.emacs.d por un lado y, por el otro, en el fichero $HOME/.emacs.el incluir esta línea

(load "line-num.el")

Una vez hecho esto, para activar el modo en el editor, ejecutaremos esto en el minibuffer:

linum-mode

Esta función activa el modo linum, que es el que nos mostrará los números de línea a la izquierda. Si queremos desactivarlo haremos como en el caso anterior: volver a ejecutarlo, ya que es, también, una función de tipo conmutador.

Cuando usáis este modo, las líneas os aparecen así:

emacs-linum_mode

Espero que os haya resultado útil el artículo. Si tenéis alguna duda o sugerencia dejadme un comentario.

 

(*) Emacs es un editor extensible, al que se pueden añadir infinidad de funciones nuevas usando el lenguaje de programación emacs-lisp. Simplemente cargando al inicio el fichero con el código fuente de dichas funciones ya las tendremos disponbiles para su uso. Asimismo, se pueden cambiar funciones, comportamientos y combinaciones de teclas para personalizarlo y adaptarlo para nuestra comodidad.