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.

2 pensamientos en “Un poco de… Emacs (V): números de línea

  1. mariana

    hola!
    Emacs es nuevo para mi! cada vez que uso el terminal y me dice un mensaje de error en tal linea… tengo que contar las lineas en mi editor emacs pq no tengo seteado emacs para que me aparescan las lineas en el editor como tal… estoy buscando en la web y llegue a esta pagina que es un existo, pero aun no lo consigo pq no logro entender la parte que dice: “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”
    se que debe ser una boberia jejej, pero que es un fichero? necesito saber que es para poder incluir la linea esa jeje. por lo menos si se que es un minibuffer pq busque en fotos y meaparecieron ilustraciones, pienso que si esta pagina tuviera ilustraciones de prinscreen por ejemplo, seria estupendamente perfecta.
    muchas gracias de antemana =)

    1. admin Autor

      Hola, Mariana.

      Lo que quiero decir es que debes descargar el fichero line-enum.el (http://www.emacswiki.org/emacs/line-num.el) y copiarlo dentro del subdirectorio llamado “.emacs.d” que está en tu directorio de HOME (por ejemplo: /home/mariana/.emacs.d podría ser el tuyo si “mariana” es tu nombre de usuario en tu sistema GNU/Linux). Luego, en el fichero .emacs.el (también en tu directorio HOME), debes meter la línea que te indico en el post:

      (load “line-num.el”)

      Con esto ya lo tendrías. Espero que te ayude.

      Gracias por el comentario.

      Salu2, Mario.

      PD.: fichero es sinónimo de archivo (http://es.wikipedia.org/wiki/Archivo_(inform%C3%A1tica) para más info).

Los comentarios están cerrados.