xfce4-terminalのCopy-Pasteは0〜と1〜を追加します


105

xubuntu 14.04、64ビットを使用します。ときどき、xfce4-terminalにテキストを貼り付けようとすると、予想されるテキストが貼り付けられるのではなく、次のように0~and 1~で囲まれます。

0~mvn clean install1~

テキストは想定されているmvn clean install-コンテンツを他のさまざまなアプリケーション(gnome-terminal、geditなど)に貼り付けることでこれを検証しました。xfce4-terminalを除くすべてのアプリケーションは、コンテンツを正しく貼り付けます。インターネット上でこれに関するリファレンスを見つけることができませんでした(残念ながら、google.comで特殊文字を含むテキストを検索するのは難しいです...)。なぜこれが起こるのですか?


どうやって貼りますか?ミドルクリック、または他の何か?
セラダ

1
私はすべての方法を試しました:ミドルクリック、右クリック、オプションペースト、ctrl + shift + vを選択しました。0〜および1〜の文字が表示される場合、使用する貼り付け方法は関係ありません。
-botismarius

回答:


144

問題は、端末がブラケットペーストモードになっているが、適切にサポートされていないように見えることです。この問題はVTEで修正されましたが、xfce4-terminalはまだメンテナンスされていない古いバージョンを使用しています。

次を使用して、一時的にブラケットペーストモードをオフにしてみてください。

printf "\e[?2004l"

4
常に再現できない場合は、ブラケットペーストモードを有効にしたプログラムを実行してクラッシュしたため、終了する前に無効にすることができなかった可能性があります。
キリア

4
素晴らしいです、ありがとう!私はこの問題に1年以上苦労しています。この「ブラケット貼り付けモード」を完全に無効にすることは可能ですか?ところで、誰がそのようなクレイジーなことを実装していますか?;)
アダムロマネク

4
端末によって異なります。そして、アプリケーションが何かが入力されたか貼り付けられたかを知ることができるので、それは本当に便利な機能です。たとえば、IRCプログラムのweechatは、複数行の貼り付けを送信するかどうかを尋ねるために使用します。複数行の貼り付けモードは、ユーザーが行を入力したかどうかを知る方法がないため、ありません。
-kyrias

1
かっこ付きの貼り付けモードで混乱しているプログラムを見つけるにはどうすればよいですか?
-aviggiano

3
Ubuntuの上でベースのディストリビューションのためにあなたがから「VTE」パッケージのパッチ適用済みバージョンをインストールしようとすることができますlaunchpad.net/~adrozdoff/+archive/ubuntu/vte
デニスBakharev

78

私の問題は、bashセッションが不適切に閉じられたためです。だからreset私の端末でコマンドを実行すると、すぐに解決しました。


2
これは私のために働いた。
AFP_555

そしてそれは私のために働いた!
tomd

ターミネーターを使用して、Ubuntu 16.04で発生しました。リセットが機能しました!
user1270710

私のターミネーターも同じようにして、Ubuntu 16.04を実行していました。reset私のssh接続で実行すると修正されました。
マルチェログレチリンス

23

私も同じ問題を抱えていました。viを使用した後に発生します。

set t_BE= 私の.vimrcファイルに追加することで、私の問題は解決しました。

参考のために、これがt_BEの機能です。

t_BEブラケットペーストモードを有効にする


7
それがまさに原因でした、ありがとう!私の場合、VIM 8にアップグレードしたときに開始しました
-rgerganov

1
t_BE =が行うセットと、それが問題を解決する理由を説明してください。
フランチェスコボッカ

7

この動作は、ターミナルエミュレータがブラケットペーストモードでスタックしている場合に発生します

これは通常、アプリケーションが異常終了する(クラッシュするかバグがある)ときに発生します。

この現象が頻繁に発生する別の理由は、VTEの古いバージョン(VTEはターミナルエミュレーションウィジェットgnome-terminalなどxfce4-terminal)のバグです。これは、Midnight Commanderのパネルの切り替えなど、特定のユーティリティの特定のアクションによってトリガーされます。

実行しているVTEベースのターミナルエミュレータでこのバグが修正されているかどうかを確認するには、Executeを実行します。echo -ne '\e[>c'これにより、入力したかのように数文字が挿入されます。中間の数値が3602それ以上の場合、前述の古いVTEバグはもう存在しません。数値がそれよりも小さい場合、VTEは引き続き影響を受け、必要以上にブラケットペーストモードでスタックします。

特定の端末エミュレーターが特定のUbuntuディストリビューションで修正されているかどうかを確認するには、packages.ubuntu.comへの依存関係を確認しますlibvte-2.91-0いいね。libvte-2.90-9そのパッケージの実際のバージョンが0.36.2以降である場合にのみ良好であり、libvte9不良です。特に、xfce4-terminalXenialではバグがあり、Zestyでは修正されています。


1

これはあなたの問題には直接当てはまらないかもしれませんが、この症状はおそらく私の場合、選択の編集者「mcedit」(Midnight Commander)が原因であることがわかりました。

バグの問題を軽減するために、次の関数を.bashrcファイルに追加しました。

### vvv 'function mcedit' is a fix-up for the ~0/~1 paste problem
function mcedit() { command mcedit $@ ; printf '\e[?2004l' ; }

次に、「source .bashrc」

これで、「mcedit」を実行するたびに、「ブラケット貼り付けモード」をリセットするために閉じるときに「printf "\ e [?2004l"」が自動的に追加されます。

YMMV、私のために働く。

同じアプローチは、vi、vim、nano、またはその他の不正なプログラムで使用できます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.