¿Cómo puedo copiar y pegar los caracteres que se muestran con compose-region?

9

Utilizo varios modos que muestran caracteres Unicode en mi código sin cambiar el archivo subyacente. Por ejemplo, en modo Haskell, el siguiente código:

foo :: forall a. Eq a => a -> a -> a

se muestra como

foo ∷ ∀ a. Eq a ⇒ a → a → a

Esto se implementa con compose-region, que puede reemplazar una región con un carácter sin cambiar el texto del búfer real.

Cuando copio el código, sin embargo, copia el texto subyacente sin el Unicode. La mayoría de las veces este es el comportamiento deseado, pero a veces quiero copiar los caracteres que se muestran, ¡tuve que escribir la segunda versión de mi ejemplo yo mismo!

¿Cómo puedo copiar el resultado de sustituciones de caracteres como este en lugar del texto subyacente? (De hecho, ¡no estoy seguro de que esto sea posible en absoluto!)

Tikhon Jelvis
fuente
2
Si alguien pudiera entrar y proporcionar algún tipo de copy-visiblefunción genérica , sería increíble.
nispio

Respuestas:

3

Traté de hacer esto yo mismo y no encontré una buena solución. Parece que PUEDE hacerse componiendo manualmente el texto del búfer en función de la propiedad de composición y la tabla de funciones de composición.

En el pasado, he resuelto esto ejecutando emacs en una terminal y usando mi mouse para seleccionar y copiar el texto que se muestra.

Claramente no es una buena solución, pero funciona en tiempos de necesidad, luego puede pegar el texto "visible" haciendo un pegado del sistema operativo en el terminal.

Jordon Biondo
fuente
No es ideal, pero ese es un truco inteligente en el que no habría pensado.
Tikhon Jelvis el