Por que o texto copiado por xclip colado no Gmail no Firefox transforma as quebras de linha em espaços?

5

Eu tenho um editor de texto que usei o xclip para copiar texto. Percebo que quando colo o texto copiado de xclip (colando o modo normal, com ctrl + v) em um e-mail do Gmail no Firefox 54.0 (64 bits) que estou compondo, ele substitui todas as quebras de linha por espaços ( e se houver várias quebras de linha seguidas, todas elas serão agrupadas em um único espaço). Quando colo em outro lugar, não tenho esse problema. No entanto, quando copio de algum lugar como o Leafpad e o colo em um e-mail do Gmail no Firefox, ele mantém as quebras de linha. O mesmo problema não acontece com o Gmail no navegador da Web Chromium.

Por que isso acontece, e há uma maneira de corrigi-lo para que ele não exclua as quebras de linha?

Estou usando o xclip 0.12 no Xubuntu 16.10, 64 bits. Aqui está o comando que eu uso para copiar o texto:

xclip -selection clipboard [seeBelow]

Eu uso essa linha de código Python para inserir o texto em que tenho [seeBelow] acima:

subprocess.Popen(command, stdin=subprocess.PIPE).communicate(text.encode());

Estou copiando o texto de um widget de texto de várias linhas Python3 Tkinter (bem, um widget que herda o texto e deve ser praticamente o mesmo para nossos propósitos).

O problema parece acontecer no Gmail dentro do Firefox. Esse é um lugar que eu frequentemente gosto de colar, já que frequentemente escrevo meus emails no meu editor.

    
por Shule 05.08.2017 / 10:08

1 resposta

2

Isso me deixou louco por um tempo também. Eu poderia copiar e colar de várias fontes, mas de alguma forma, qualquer coisa de xclip ou nvim-qt (uma GUI NeoVim) resultava no colapso de quebras de linha em espaços. Aliás, o mesmo problema aparece no Slack and Rocket Chat, mas aparentemente não no Stack Exchange. Enquanto isso, nas mesmas textareas, o clone do vim do navegador wasavi tem o problema oposto: dobrar cada quebra de linha.

Minha solução é usar um substituto simples para xclip . O código, testado no Python 2.7, é o seguinte:

#!/usr/bin/env python

import pyperclip   # pip install --user pyperclip
import sys

filename = sys.argv[1]

with open (filename) as f:
    pyperclip.copy (f.read ())

Da mesma forma, você pode extrair texto da área de transferência com s = pyperclip.paste() .

    
por 31.12.2017 / 20:57