Como copiar e colar caracteres exibidos com a região de composição?

9

Eu uso vários modos que exibem caracteres Unicode no meu código sem alterar o arquivo subjacente. Por exemplo, no modo Haskell, o seguinte código:

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

é exibido como

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

Isso é implementado com compose-region, que pode substituir uma região por um caractere sem alterar o texto real do buffer.

Quando copio o código, no entanto, ele copia o texto subjacente sem o Unicode. Na maioria das vezes, esse é o comportamento desejado, mas às vezes eu quero copiar os caracteres exibidos - tive que digitar a segunda versão do meu exemplo!

Como posso copiar o resultado de substituições de caracteres como esta e não o texto subjacente? (Na verdade, não tenho certeza se isso é possível!)

Tikhon Jelvis
fonte
2
Se alguém pudesse entrar e fornecer algum tipo de copy-visiblefunção genérica , isso seria incrível.
Nispio 15/10

Respostas:

3

Tentei fazer isso sozinho e não encontrei uma boa solução. Parece que isso pode ser feito compondo manualmente o texto do buffer com base na propriedade de composição e na tabela de funções de composição.

No passado, eu resolvi isso executando o emacs em um terminal e usando o mouse para selecionar e copiar o texto exibido.

Claramente, não é uma boa solução, mas funciona em momentos de necessidade. Você pode colar o texto "visível" novamente, colando um SO no terminal.

Jordon Biondo
fonte
Não é o ideal, mas é um truque inteligente em que eu não pensaria.
Tikhon Jelvis 15/10