web-dev-qa-db-ja.com

xfce4-terminalのコピーと貼り付けで0〜と1〜が追加されます

私はxubuntu 14.04、64ビットを使用しています。時々、貼り付けられるはずのテキストではなく、xfce4-terminalにテキストを貼り付けようとすると、次のように0~1~で囲まれます。

0~mvn clean install1~

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

117
botismarius

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

次のコマンドを使用して、ブラケット付きの貼り付けモードを一時的にオフにしてみてください。

printf "\e[?2004l"
164
kyrias

私の問題は、ひどく閉じられたbashセッションが原因でした。したがって、私の端末でコマンドresetを実行すると、すぐに解決されました。

91
petobens

同じ問題が発生しましたが、viを使用した後に発生します。

鉱山は、set t_BE=ファイルに.vimrcを追加することで解決しました。

reference の場合、これはt_BEが行うことです。

t_BE括弧付き貼り付けモードを有効にする

26
ivan

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

これは通常、アプリケーションが正常に終了しない(クラッシュまたはバグがある)場合に発生します。

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

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

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

7
egmont

これはあなたの問題に直接当てはまらないかもしれませんが、この症状はおそらく私の場合、選択した編集者の「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、またはその他の不正なプログラムで使用できます。

1
user83536