Publi

Las teclas que utilizo más frecuentemente en Emacs / Guía para principiantes

emacs_poesiaHace unos días hablé de la importancia de conocer los atajos de teclado de tu IDE favorito; hoy hablaré de las teclas que más utilizo en el mío, Emacs, y de paso hago una pequeña guía para principiantes en este editor.

I. Un apunte básico del uso del teclado en Emacs

Lo primero que hay que mencionar es que hay muchas combinaciones con la tecla Control y Alt (o Meta), cuando una tecla, por ejemplo, la “x” se pulsa junto con Control diremos C-x y cuando esa misma tecla la pulsamos junto con Alt diremos M-x cuando pulsamos una combinación por ejemplo (M-g) y luego tenemos que soltar las teclas y pulsar una tecla sola, por ejemplo, otra g, diremos (M-g g), lo mismo vale con combinaciones, si tenemos que pulsar primero C-x y luego C-c diremos: “C-x C-c”

Si por alguna casualidad no podemos pulsar la tecla Meta, o una combinación (como sucede en algunos tipos de terminales remotos), podemos, para pulsar M-x, pulsar “Escape x”

II. Acceder al comando que queremos ejecutar

Una de las muchas cosas buenas que tiene Emacs es que todo lo que podemos hacer por teclado tiene un comando asociado, incluso para muchas acciones que no tienen tecla asociada. Por otra parte, también tenemos que decir que las teclas se pueden personalizar, por lo que estas teclas que diré (si no digo lo contrario) son las que vienen por defecto, y que casi todos los usuarios mantenemos porque suelen ser cómodas de pulsar, aunque en algunas ocasiones serían cómodas en un teclado inglés… pero te terminas acostumbrando.

Como iba diciendo, para ejecutar un comando debemos pulsar M-x y podremos, desde el minibuffer escribir el comando que queremos ejecutar, eso sí, disponemos de completion por lo que en cualquier momento podemos pulsar tab y veremos las posibilidades que tenemos. Incluso podemos pulsar M-x tab y veremos todas las posibilidades que tenemos, hay que recordar que podemos cargar extensiones y éstas pueden añadir comandos nuevos. Es más, la lista de comandos se abrirá en un nuevo buffer de Emacs, con lo que podremos buscar en ese buffer (no siempre nos acordamos de cómo empieza un comando). Para buscar también podemos hacer M-h a.

III. Me he equivocado con tanta combinación de teclas. ¿ Qué hago ?

Pulsar C-g en cualquier momento, eliminará todo lo que hemos pulsado hasta ahora. Es cierto, que a veces hay combinaciones demasiado largas, o en ocasiones hemos empezado a pulsar algo y nos arrepentimos, bien C-g es la solución para seguir por donde estábamos.

También podemos pulsar C-g si queremos cancelar una acción en curso, como por ejemplo salir, cuando tenemos muchos buffers abiertos y nos pregunta si queremos guardar o no, podemos pulsar C-g para que deje de preguntar por archivos y no salir del programa.

IV. Comandos básicos de un editor de texto

  • Abrir archivo: C-x C-f nos preguntará qué archivo abrir, podemos navegar por directorios desde el minibuffer, tenemos además la posibilidad de completar el nombre del archivo. (A lo bash)
  • Nuevo archivo: C-x C-f ¡ igual que antes ! y es que no hacemos nada diferente, abrimos un nuevo buffer. El archivo no se creará hasta que no lo salvemos por primera vez, así que, sin problema.
  • Salvar archivo: C-x C-s Salvamos el archivo con el nombre que tiene.
  • Salvar como: C-x C-w Nos pregunta con qué nombre nuevo queremos salvar el archivo
  • Salir: C-x C-c Salimos, nos preguntará
  • Buscar un texto: C-s (busca hacia adelante) C-r (busca hacia atrás) La primera vez que pulsamos cualquiera de las teclas, nos preguntará qué texto buscar, luego podemos jugar y buscar adelante y atrás como queramos.
  • Deshacer: Es posíblemente la opción peor implementada en Emacs, pero a veces hace el apaño. Podemos pulsar C-x u para deshacer un carácter o C-u C-x u para deshacer un conjunto de caracteres.
  • Seleccionar texto: Podemos hacerlo con el ratón o pulsar C-espacio, soltar y movermos con las teclas (flechas, re-pag, av-pag, inicio, fin y combinaciones.
  • Copiar: Con un texto seleccionado, pulsamos M-w
  • Cortar: Con un texto seleccionado, pulsamos C-w
  • Pegar: Pulsar C-y, pero si queremos pegar alguno de los textos copiados antes del último, justo después de C-y pulsamos M-y, e iremos navegando por todo lo que hemos ido copiando anteriormente.
  • Cambiar de ventana: C-b y seguidamente escribimos el nombre del fichero que queremos editar (de los que previamente están abiertos. O también C-x C-b para ver un listado de ficheros abiertos.
  • Cerrar buffer: C-x k Cerramos el buffer abierto ahora mismo, si correspondía con un fichero y no hay más buffers con ese fichero abierto, cerraremos el fichero y si tiene algún cambio, nos preguntará si queremos salvarlo.

V. Comandos para movernos más rápidamente

Algunos de estos son utilizados en más lugares:

  • C-k Elimina desde la posición actual del cursor hasta fin de línea. Estamos cortando el texto, por lo que la línea se copiará automáticamente.
  • M-< Saltamos al principio del buffer
  • M-> Saltamos al final del buffer
  • C-arriba / C-abajo : Nos moveremos verticalmente en bloques, es decir entre líneas en blanco o entre funciones, entre comentarios, etc
  • C-l Centra el buffer actual en la posición del cursor. Si se nos ha perdido el cursor es muy útil, o si estamos leyendo un documento.
  • M-g g nos preguntará a qué línea nos queremos ir del texto.
  • C-x h Selecciona el buffer completo
  • M-h Selecciona el párrafo actual

VI. Visualizando varios buffers a la vez

Emacs nos permite, en la misma ventana (aunque aquí se llame frame) tener varios cuadros de texto (que Emacs llama windows):

  • C-x 2 dividimos horizontalmente la pantalla, para tener un buffer arriba y otro abajo
  • C-x 3 dividimos verticalmente la pantalla, así tenemos un buffer a la derecha y otro a la izquierda.
  • C-x 0 (cero) eliminamos el buffer seleccionado
  • C-x o (letra O) cambiamos de buffer, nos vamos al de al lado, aunque también podemos seleccionarlos con ratón

VII. A la hora de programar nos será muy útil…

  • C-; Si tenemos un texto seleccionado, comentará ese texto, si no introducirá un comentario al final de la línea.
  • C-M-@ Si tenemos un texto seleccionado, se auto-indentará todo dependiendo del lenguaje de programación que estemos escribiendo.
  • M-/ Se completará automáticamente la palabra que estamos escribiendo ahora mismo.
  • Cuando hacemos C-espacio, C-s, C-r, etc vamos a irnos a otra posición diferente a la que estábamos, por lo que necesitamos una tecla para regresar: C-x C-x ; es útil cuando programamos y tenemos que escribir algo arriba del todo, y luego regresar a la línea donde seguimos escribiendo.
  • C-x r espacio Nos hará una pregunta, pulsamos una letra cualquiera, por ejemplo a. Guardará la posición en esa a
  • M-x register-to-point Nos preguntará una posición, por ejemplo, la de antes: a; y nos lanzará a esa parte del texto. (Podremos vincularlo a una tecla si lo usamos bastante.

Anexos

Bueno, aquí pondré combinaciones teclas interesantes que me vayáis diciendo.

  • C-h t nos da acceso al tutorial de EMACS, muy interesante para empezar con una lectura ligera. Sugerido por @nflamel

Aunque parece que tenemos que estudiar para utilizar el editor, basta con una semana para habituarse a las teclas básicas, y poco a poco, llamando a los comandos M-x  indent-region (por ejemplo) nos dirá la tecla que debemos pulsar para acceder rápidamente.

Actualizado: 31/10/2014 para añadir anexos y la tecla del tutorial.

También podría interesarte...

There are 8 comments left Ir a comentario

  1. Pingback: Bitacoras.com /

  2. Pingback: BlogESfera.com /

  3. kenkeiras /
    Usando Mozilla Firefox Mozilla Firefox 3.6.12 en Windows Windows Vista

    Genial, siempre he querido saber como manejar EMACS

  4. Ramón /
    Usando Opera Opera 9.80 en Linux Linux

    Viendo estos atajos me hace recordar porque amo a vim!

  5. admin / Post Author
    Usando Mozilla Firefox Mozilla Firefox 3.6 en Linux Linux

    @kenkeiras
    A mí me gusta mucho, he pasado muchísimas horas con este programa, y casi no sé vivir sin él…

    @Ramón
    Sobre gustos no hay nada escrito, tal vez sean atajos de teclado algo raros, pero personalmente vim me estresa… aunque también es verdad que he visto personas que usan vim hasta con los ojos cerrados 🙂 :wq

  6. Fran /
    Usando Mozilla Firefox Mozilla Firefox 33.0 en Ubuntu Linux Ubuntu Linux

    @Ramón
    Cuánto tiempo sin un buen flame vim vs. emacs!

    Venga, mi opinión personal intransferible.

    Vim, pros: edicion modal.
    Vim, contras: VimScript, no hay magit

    Emacs, pros: elisp, magit
    Emacs, contras: … iba a decir que no hay edición modal, pero me he acordado de evil así que…

    @admin cuenta como abrir el tutorial de emacs, que viene muy bien para empezar 🙂

    1. Gaspar Fernández / Post Author
      Usando Mozilla Firefox Mozilla Firefox 32.0 en Linux Linux

      Tecla del tutorial añadida.

      Uhmmm, tenía que decirlo, vi es el editor de la bestia, como diría Richard Stallman 🙂 http://youtu.be/S76pHIYx3ik?t=2m25s

  7. Pingback: Foto: Chuleta de atajos de teclado de Emacs – Poesía Binaria /

Leave a Reply