xclip을 사용하여 텍스트를 복사하는 텍스트 편집기를 만들었습니다. xclip에서 복사한 텍스트(ctrl+v를 사용하여 일반적인 방법으로 붙여넣음)를 Firefox 54.0(64비트)에서 작성 중인 Gmail 이메일에 붙여넣을 때 모든 줄바꿈이 공백으로 대체되는 것을 발견했습니다(해당되는 경우). 행에 여러 줄 바꿈이 있으면 모든 줄 바꿈이 하나의 공백으로 병합됩니다. 다른 곳에 붙여넣으면 이런 문제가 발생하지 않습니다. 그러나 Leafpad와 같은 곳에서 복사하여 Firefox의 Gmail 이메일에 붙여넣으면 줄 바꿈이 유지됩니다. Chromium 웹 브라우저의 Gmail에는 동일한 문제가 발생하지 않습니다.
왜 이런 일이 발생하며 개행 문자가 제거되지 않도록 수정할 수 있는 방법이 있습니까?
저는 Xubuntu 16.10(64비트)에서 xclip 0.12를 사용하고 있습니다. 다음은 텍스트를 복사하는 데 사용하는 명령입니다.
xclip -selection clipboard [seeBelow]
위의 [아래 참조]에 텍스트를 삽입하기 위해 다음 Python 코드 줄을 사용합니다.
subprocess.Popen(command, stdin=subprocess.PIPE).communicate(text.encode());
저는 Python3 Tkinter 여러 줄 텍스트 위젯(글쎄, 텍스트를 상속하는 위젯이고 우리의 목적에 따라 실제로 동일해야 함)에서 텍스트를 복사하고 있습니다.
이 문제는 Firefox의 Gmail에서만 발생하는 것 같습니다. 그런데 저는 에디터에서 이메일을 자주 쓰다보니 자주 붙여넣기를 좋아하는 곳이 바로 이곳입니다.
답변1
이것도 한동안 나를 미치게 만들었다. 다양한 소스에서 복사하여 붙여넣을 수 있지만, xclip
또는 (NeoVim GUI) 의 모든 항목으로 인해 nvim-qt
줄 바꿈이 공백으로 축소됩니다. 그런데 Slack과 Rocket Chat에서는 동일한 문제가 발생하지만 Stack Exchange에서는 발생하지 않는 것 같습니다. 한편, 동일한 텍스트 영역에서 브라우저 내 vim 복제본에는 wasavi
반대 문제가 있습니다. 모든 줄 바꿈이 두 배가 됩니다.
내 해결책은 간단한 대체품을 사용하는 것이었습니다 xclip
. Python 2.7에서 테스트한 코드는 다음과 같습니다.
#!/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 ())
마찬가지로 를 사용하여 클립보드에서 텍스트를 추출할 수 있습니다 s = pyperclip.paste()
.
답변2
방금 Ctrl+V가 Firefox에서 붙여넣고 새 줄을 공백으로 바꾸는 동안 Ctrl+Shift+V가 새 줄을 그대로 유지한다는 것을 발견했습니다.