A pesar de que Emacs sea anto todo un editor de texto antes que un procesador, puede llevar a cabo ciertas tareas básicas de formateo de texto:
Cuando se abre un nuevo archivo, en text-mode o en fundamental-mode, a cada pulsación de <Tab> el cursos se desplaza ocho espacios a la derecha.
Ahora, en el archivo abierto, tecleemos una frase cualquiere y pasemos el cursor a la siguiente linea (en blanco).
Si ahora vamos pulsando <Tab> podemos observar que el cursor no se desplaza ya ocho espacios cada vez, sino que se va colocando debajo de cada palabra de la linea anterior.
Si intercalamos una línea en blanco, observamos como , al pulsar <Tab> en la nueva línea el curso se mueve al final de la misma: Emacs ha considerado la linea en blanco intercalada como un único caracter.
Este es un comportamiento bastante adecuado para quién esté escribiendo código, aunque puede que no sea este nuestro caso.
Hay una forma de conseguir que Emacs gestione las tabulaciones como lo haria una antigua máquina de escribir:
C-q <Tab> :El cursor se moverá a intervalos de ocho espacios.
Ejecutando el comando:
M-x edit-tab-stops <Enter>
Nos aparece el buffer *Tab Stops*. .Los : que podemos ver en la primera línea del buffer nos marcan los actuales intervalos de tabulación.
![]() |
Para insertar un nuevo intervalo, llevamos el cursor hasta la posición deseada y teclamos :
Para eliminar una tabulación, nos movemos a ella y la suprimimos
Los cambios se guardarán ejecutando el comando : C-c C-c
Los cambios efectuados afectarán a todos lo buffers creados, pero sólo durante la sesión en curso.
Con el cambio realizado de la forma descrita los intervalos de tabulación cambian para la sesión corriente, pero al reiniciar Emacs se activa de nuevo el intervalo por defecto: ocho espacios.
Podemos cambiar el valor del intervalo de tabulación por defecto através de la modificación de la variable que lo establece, en el archivo .emacs:
(setd-default tab-width 8) :
basta con sustituir 8 por el número de espacios al que queramos establecer el nuevo intervalo de tabulación por defecto.
Con el ya conocido comando C-q <Tab> podremos comprobar el resultado del cambio realizado.
Nos puede interesar que Emacs, en lugar de insertar caracteres de tabulación inserte espacios. Para ello bastará con incluir ( o modificar) la siguiente variable en el archivo .emacs:
(setd-default indent-tabs-mode nil)
Con esta configuración, Emacs insertará espacios cuando se pulse <Tab> . En cambio, si se utiliza el comando C-q <Tab> seguirá insertando caracteres de tabulación.
Disponemos de dos comandos que nos permiten cambiar espacios de tabulación por espacios y viceversa:
M-x untabify <Enter>
Cambia todos los caracteres de tabulación por su equivalente número de espacios. Opera sobre una región de texto.
M-x tabify <Enter>
Cambia grupos de tres o más espacios por caracteres de tabulació, siempre que ello no afecte a la disposición del texto.
Emacs, en text-mode, tiene la capacidad de sangrar texto.
Tras el primer párrafo, usamos <Tab> o espacios para sangrar el texto hasta el nivel deseado.
Cuando el sangrado deba contener más de un párrafo, se inicia el siguiente párrafo pulsando <Enter> y <Tab> o, simplemente tecleando:
Pulsando dos veces C-j se intrcalará una linea en blanco entre ambos párrafos.
Para ellos debemos operar en alguno de los siguientes modos:
Tenemos un comando, M-q que nos agrupa varios párrafos, especialmente si no están separados por una linea en blanco, en un solo párrafo no sangrado.
Si deseáramos conservar el sangrado de cada párrafo , debemos utilizar el comando:
M-x fill-individual-paragraps <Enter> :
Sobre una región previamente marcada.
Para el sangrado de una determinada región de texto utilizaremos los comandos:
Para realizar los cambios de márgenes disponemos de los siguientes comandos:
Los cambios de márgenes afectan solo al buffer corriente y sólo durante la sesión corriente.
Por defecto, los anteriores comandos incrementan o disminuyen los respectivos márgenes en cuatro espacios.
Admiten modificadores numéricos, que provocan que el númer de espacios de variación del margen sea el resulatado de multiplicar el valor por defecto por el valor dado al multiplicador numérico.
Estos comandos pueden actuar sobre regiones, aunque operan mejor sobre buffers completos.
El centrado de texto , o su justificación a derecha o izquierda,,tal vez sea una de las tareas de formateo más comunes que llevaremos a cabo con Emacs.
Estando en text-mode vamos a ver como llevar a cabo el centrado ( y /o justificación) de líneas, párrafos y regiones.
Vamos a comenzar por el centrado de texto; para lo cual situaremos el cursor en la línea, parrafo o región seleccionada que deseemos centrar y utilizaremos los siguientes comandos:
Existe otra via para el centrado y la justificación de texto, através de las opciones del menú.
Las opciones de menú para la realización de dichas operaciones de encuentran en:
Edit-->Text Properties-->Justification donde nos encontraremos con las siguientes opciones:
![]() |
Estos comandos actuan sobre una linea individual (aquella sobre la que está situada el cursor) o sobre textos seleccionados previamente.
Los comandos correspondientes a las diversas opciones que aparecen en el menú son:
En ocasiones, la aplicación de los anteriores comandos sobre párrafos y/om regiones, no da el resultado deseado.
Entonces podemos recurrir un comando ya visto anteriormente: C-x <Tab>; con modificador numérico.
Podemos acceder al modo outline-mode como modo mayor o como modo menor.
La utilización de outline-minor-mode reside en que puede utilizarse este modo en el seno del modo mayor en el que deseemos trabajar.
Al entrar en outline-mode, la barra de menú cambia, apareciendo tres nuevas opciones: Headings, Show y Hide
![]() |
La mayoria de los comandos de outline-mode comienzan por C-c
Cuando trabajemos con outline-minor-mode los comandos comenzarán por C-c @, con el fin de evitar interferencias con otros comandos del modo mayor en el que estemos trabajando.
En outline-mode utilizaremos las siguientes marcas para identificar los distintos niveles(cabeceras, sub-cabeceras...):
| * | Primer nivel |
| ** | Segundo nivel |
| *** | Tercer nivel |
| .... | ......... |
Las líneas que no contienen * se denominan body-lines, body-text o, sencillamente, texto
Emacs espera encontrar los arteriscos en la primera columna de cada línea marcada.
![]() |
Através de las opciones de menú Hide y Show podemos ocultar y/o mostrar, respectivamente, porciones determinadas del texto.
Através de las opciones del menú Headings nos podremos mover entre la estructura del documento.
Veamos, esquemáticamente los mencionados comandos del outline-mode
Emacs ofrece una alternativa a la edición de tablas: los rectángulos. Son áreas rectangulares que se definen y manipulan utilizando comandos específicos.
Los comandos para la manipulación de rectángulos operan mejor en archivos sin carácteres de tabulación por lo que, antes de comenzar a utilizarlos es conveniente seleccionar el buffer ( C-x h) y proceder a la sustitución de los caracteres de tabulación por espacios, mediante el comando:
Para definir un rectángulo se opera de la misma manera que para definir una región de texto.Debemos tener en cuanta que el caracter sobre el que se halla el cursor, cuando está en el extremo inferior derecho, no forma parte de la selección.
Los comandos utilizados en la manipulación de rectángulos son: