Con frecuencia extraigo un rectángulo de texto de un búfer, pero luego encuentro que quiero tirar del texto como si no fuera un rectángulo. ¿Hay alguna manera de agregar el rectángulo muerto actual al anillo de matar?
El Manual de GNU Emacs tiene esto que decir:
"Matar" un rectángulo no es matar en el sentido habitual; el rectángulo no está almacenado en el anillo de exterminio, sino en un lugar especial que solo registra el rectángulo asesinado más reciente. Esto se debe a que tirar de un rectángulo es tan diferente de tirar texto lineal que se deben usar diferentes comandos de tirar. Yank-popping no está definido para rectángulos.
Sin embargo, básicamente puedo obtener el comportamiento que quiero con
M->
ir al final del búferC-x r y
tirar del rectánguloC-x C-x
punto de cambio y marca (selecciona líneas recién arrancadas)C-w
matar a la selección al anillo de matar
¿Hay una mejor manera de convertir un rectángulo muerto en una entrada de anillo de exterminio?
Respuestas:
Si entendí tu pregunta, estás buscando algo como esto:
Cortesía de ErgoEmacs.
fuente
No estoy seguro de qué tiene de especial tener el rectángulo en el anillo de cierre, pero si actualiza a Emacs-24.4, puede hacer lo siguiente:
C-x SPC .... M-w
seleccionar un rectángulo y colocarlo en el anillo de cierre. Después de esoC-y
, tirarás de ese rectángulo (en el mismo casoC-x r y
).fuente
Inicialmente me molestó la falta de una solución integrada para este problema, luego me di cuenta de que había una solución integrada: kill-rectangle.
Digamos que tienes texto como
Pero desea la parte 'B' del texto en otro lugar, como entre estas líneas C y D:
Si copia el rectángulo B (
C-x r M-w
) y luego coloca el punto en la primera 'D', luego tira del rectángulo hacia atrás (C-x r y
), termina condonde realmente querías
Puede parecer natural copiar el rectángulo de 'B' y tirarlos a la nueva ubicación, pero una mejor solución es simplemente copiar las líneas 'A y' B 'y tirarlas en su totalidad entre' C 'y' D 'líneas.
Luego, marque el rectángulo que contiene las 'A' y use
kill-rectangle
(C-x r k
) para terminar con el resultado deseado.fuente