GNU Emacs: Todos los comandos que necesitas y nunca recuerdas

emacs

No te voy a engañar, emacs es complejo pero ¿qué hay que merezca la pena y no lo sea?. Si algo tiene emacs son opciones y comandos, cienes y cienes de ellos. Y claro, cuando necesitas hacer algo, no te acuerdas de cuál era el maldito comando y tienes que ponerte a mirar la documentación, aunque en realidad siempre acabas buscando las mismas cosas. O quizá sólo me pasa a mi. Pues en esta receta voy a poner los comandos que suelo necesitar y que siempre se me olvidan, que son casi todos.

Combinaciones sencillas

Movimientos
M-< Ir al principio del buffer
M-> Ir al final del buffer
M-g g Ir a una línea
Control de blancos
C-x C-o Elimina todas las lineas en blanco menos una
Esc-espacio Elimina todos los blancos menos uno
M-\ Elimina todos los blancos

Resaltar el paréntesis o llave correspondiente

Hay un minor mode para ello:

 M-x show-paren-mode 

Hay un grupo de opciones que tienen que ver con esto y que puedes acceder con:

M-x customize-group
Customize group: paren-matching

Convertir un fichero con saltos de línea tipo DOS a tipo Unix

C-x <RET> f unix
C-x C-s

Indentación

Algunos comandos y variables relevantes para la indentación:

  • standard-indent (variable) permite fijar el ancho de la indentación por defecto.
  • indent-tabs-mode (variable) controla si al pulsar el tabulador se insertan espacios (on) o caracteres TAB (off)
  • tabify (comando) convierte tabs blandos en tabs duros en el área seleccionada, es decir, sustituye secuencias de más de 3 espacios por tabuladores.
  • untabify (comando) convierte tabs duros en tabs blandos.

Lo siguiente es un fragmento de fichero .emacs para indentación con tabs blandos de 4 espacios. Generalmente se recomienda usar tabs blandos aunque la cuestión soft tabs vs hard tabs es un flame clásico entre los programadores.

(custom-set-variables
 '(standard-indent 4)
 '(indent-tabs-mode nil))

Referencias

Comentarios

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de oscarah

Añadir nueva línea al final del fichero

En muchas ocasiones, al editar un fichero, es necesario que éste tenga una nueva linea al final del todo. Puede ocurrir que se nos olvide, con los consabidos “warnings” que eso conlleva. ¡Nunca más! Añadid esto a vuestro .emacs y listo:

;; Nueva línea al final del fichero
(setq require-final-newline t) 

"aviso: la dereferencia de punteros de tipo castigado romperá las reglas de alias estricto" --GCC 4.3.1

Imagen de david.villa

Esto ya lo teníamos en

Esto ya lo teníamos en GNU Emacs: puesta a punto, pero como puedes comprobar tenemos cierta fragmentación en estas dos recetas…

No soy portavoz de ningún colectivo, grupo o facción. Mi opinión es personal e intransferible.

Imagen de oscarah

Para autocompletar

Otra cosilla muy útil de emacs es el autocompletar, que te permite usar una combinación de teclas para que termine la palabra que estabas escribiendo por ti.

La combinación de teclas actual es: M-/

Hemos de reconocer que según el teclado que tengamos, usar esto puede ser peligroso para la salud de nuestras articulaciones (puede causar luxaciones y dolor de cabeza) Sticking out tongue Por ello podemos cambiarlo cómodamente:

M-x global-set-key RET e introducimos la combinación que deseemos, eso si, que no este ya usada (a mi me gusta usar C-TAB) y terminamos escribiendo RET dabbrev-expand.

También puedes hace el cambio permanente, añadiendo en tu fichero .emacs la siguiente línea:

(global-set-key [(C-tab)] 'dabbrev-expand)

O si quieres evitar que te duela el pulgar, algo más ergonómico como esto:

(global-set-key (kbd "M-º") 'dabbrev-expand)

________________________________________________
La "L" de "CRySoL" es de "Libre" no de "Linux".

"aviso: la dereferencia de punteros de tipo castigado romperá las reglas de alias estricto" --GCC 4.3.1

Emacs en español

Un resumen muy util y usable.... adecuada para estos intervalos de "Alzehimer" cuando se llevan demasiadas horas ante un teclado.
Os dejo el enlace a un manual de Emacs en español con el que he "topado" recientemente ( me paració muy interesante y completo....)
www.rpublica.net
(El acceso directo al manual de emacs es www.rpublica.net/emacs/emacs.html )

Saludos!

Imagen de magmax

Emacs: Iluminar la línea actual.

A menudo es útil que se ilumine la línea donde tienes el cursor. Para activarlo, basta con:

M-x global-hl-line-mode

Si ves que no ha habido cambios, a lo mejor es porque el color de iluminado es el mismo que el de fondo. Para cambiarlo:

M-x customize-group
Customize group: hl-line-face

Allí podéis ponerla en negrita, subrayada, en otro color...

Tenéis que tener en cuenta que hay que ponerla en algún color que no se mezcle con los major modes o no veréis nada. Yo uso el background "darkolivegreen" y no me va mal.

Por cierto, David, muy buena esta bitácora.

Miguel Ángel García
http://magmax.org

Imagen de david.villa

Tienes mi permiso...

...para añadir lo que quieras, que para eso eres editor Eye-wink

No soy portavoz de ningún colectivo, grupo o facción. Mi opinión es personal e intransferible.

Imagen de magmax

Despacito las cosas se hacen mejor.

Voy a tratar de mantener tu estilo. Así, lo voy añadiendo como comentario y dentro de algún tiempo podemos "copipastear" los comentarios, aprovechando para darle un orden y eso.

¿te parece?

Miguel Ángel García
http://magmax.org

Emacs en varias lenguas?

Hola amigos,

yo estou empezando a utilizar Emacs y, entre tantas cosas buenas, una pregunta se me quedó sin respuesta: Como hago yo la configuración de la lengua (del menu y los mensajes), cambiando-la de Inglés al Espanol?

He buscado esta información hace días y, por no haberla encontrado, supongo incluso que no existe traducción al Espanol. Alguien sabe informarme precisamente al respecto? Muchas gracias!

Saludos!
Gabriel

Imagen de magmax

Buena pregunta

Mhhhhh… Debo decir que es una pregunta muy buena, a la que no sé responder.

La verdad es que nunca me lo he planteado. Y también es verdad que uso muy poco los menús de Emacs (para qué, teniendo la combinación de teclas que es mucho más rápida).

Mi consejo es que te aprendas las combinaciones de teclas o, para las órdenes que no uses demasiado, la orden en sí misma (que se ejecuta mediante META+x o bien ESC+x).

GNU/Emacs es muy difícil al principio, pero como siempre digo: es tan difícil entrar en el mundo Emacs como salir de él. Una vez que lo conoces no quieres otra cosa.

Las combinaciones de teclas se pueden configurar (siempre con excepciones) en otros programas, tales como Eclipse o ¡M$ Visual Studio! (sí, sí: increíble pero cierto).


In a world without Walls and Fences, ¿who needs Windows or Gates?

Miguel Ángel García
http://magmax.org