xclipを使用してテキストをコピーするテキストエディタを作成しました。 xclipからコピーしたテキスト(ctrl + vを使用して一般的な方法で貼り付ける)をFirefox 54.0(64ビット)で作成しているGmailメールに貼り付けると、すべての改行が空白に置き換えられることがわかりました(該当する場合) 。行に複数の改行がある場合、すべての改行は1つのスペースにマージされます。他の場所に貼り付けてもこの問題は発生しません。ただし、Leafpadと同じ場所からコピーしてFirefoxのGmailメールに貼り付けると、改行は維持されます。 Chromium Webブラウザの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
反対の問題があります。すべての改行が2倍になります。
私の解決策は単純な代替品を使用することでした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が新しい行をそのまま残すことがわかりました。