Lo que he aprendido: selección rectangular en Emacs

La selección rectangular es una de las cosas por las que amo Emacs, una vez que la pruebas ya no puedes vivir sin ella. ¿En que consiste esa cosa tan espectacular? me diréis. Veámoslo con un ejemplo: imaginemos que tenemos esta tabla en un archivo de texto plano:

A    24
B    24
C    45
D    78
E    13

De repente nos damos cuenta de que hemos metido dos veces el dato para A y que tenemos todos los números una fila más abajo de lo que corresponde. Argh. Sería guay poder seleccionar los datos correspondientes a la columna y situarlos en la posición correcta, ¿no? ¡Pues con Emacs podemos gracias a la selección rectangular!

La selección rectangular

Para definir el rectángulo en cuestión usamos la marca y el punto, la marca será la esquina superior izquierda y el punto la esquina inferior derecha. Para establecer la posición de la marca usamos como siempre C-ESPACIO, el punto es la posición actual del cursor. Emacs seleccionará las filas y columnas que estén en el dentro de la sección rectangular que hemos definido.

Una vez elegido el rectángulo podemos hacer diferentes cosas con él, lo más habitual será quitarlo de un lado para ponerlo en otro, para ello tenemos:

  • M-x kill-rectangle (C-x r k) para cortar (kill) el rectángulo texto
  • M-x yank-rectangle (C-x r y) para pegar (yank) el rectángulo de texto

La combinación de teclas para todas las funciones que afectan en un rectángulo empiezan por C-x r para que sean más fáciles de recordar. Las demás las tenéis en el manual, por si no me creéis.

Todo esto es muy chulo pero tiene para mí un problema: Emacs no nos marca de ninguna manera especial el rectángulo que estamos seleccionando. Como siempre, hay una solución para esto.

El modo de selección rectangular

A partir de Emacs 24.4 hay una variante de la selección rectangular: el modo Rectangle Mark. Lo activamos con M-x rectangle-mark-mode o C-x ESPACIO y nos muestra qué trozo de texto está seleccionando. Nos permite además usar las combinaciones de teclas de siempre para cortar y pegar. Aquí lo tenéis en acción:

rectangle

Por cierto, si usáis el modo CUA porque no queréis memorizar las combinaciones de teclas de copiar, cortar y pegar de Emacs podéis activar la selección rectangular con C-ENTER. Su selección de rectángulos mola bastante

Nada más por hoy, espero haberos hecho llegar algo de mi amor por Emacs, esta funcionalidad es muy útil para los que trabajamos con datos, con Markdown…

Referencias

12.5 Rectangles en el manual de Emacs

Emacs: Edit Column Text, Rectangle Commands en Ergo Emacs

Working with rectangular selections

A Peek at Emacs 24.4: Rectangular Selection

Anuncios

6 pensamientos en “Lo que he aprendido: selección rectangular en Emacs

  1. nasciiboy

    maldicioooon! existia un modo de marca rectangular, aaaaahhhhhh, cuanto tiempo pase asesinando rectangulos y deshaciendo las matansas… este “truco”, hace que la vida tenga sentido

    (pd: utilizar en conjunto con C-x r t (string-rectangle) y multiple-cursors-mode para casos mas rudos con aproximacion “rectangural”

    Responder
  2. QuijoteLibre (@quijote_libre)

    De tu amor por Emacs no hay duda, cómo de que nunca se termina de aprender.
    Gracias a eso mantengo la esperanza frente a noticias cómo https://i.redd.it/ksdotwbdyv4z.png y comentarios cómo https://www.reddit.com/r/emacs/comments/6wn2aw/is_emacs_dying/ que le hacen a uno pensar si vale la pena el esfuerzo.
    Hay que decir que tener un hijo que usa Vim tampoco ayuda, cómo él es raro de por sí (usa OpenBsd y un escritorio I3 :o) tampoco le doy mucha importancia.
    Muchas gracias cómo siempre por tu aportación.

    Responder
    1. Ondiz Autor de la entrada

      ¡Emacs no morirá nunca! ¡No mientras haya usuarios como nosotros!

      Anda que tu hijo… ya le vale. 😛 Mi hermano también usa Vim, concretamente NeoVim

      Gracias por pasarte por aquí 😀

      Responder
  3. Pingback: En qué ando: agosto | Onda Hostil

¡Opina sin miedo! (Puedes usar Markdown)

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s