Salin-Tempel di terminal xfce4 menambahkan 0 ~ dan 1 ~

105

Saya menggunakan xubuntu 14.04, 64 bit. Sesekali, ketika saya mencoba menempelkan beberapa teks di terminal xfce4, alih-alih teks yang diharapkan untuk ditempelkan, itu dikelilingi oleh 0~dan 1~, seperti:

0~mvn clean install1~

Teks seharusnya mvn clean install- Saya memverifikasi ini dengan menempelkan konten di berbagai aplikasi lain (gnome-terminal, gedit dan lain-lain). Setiap aplikasi menempelkan konten dengan benar, kecuali xfce4-terminal. Saya tidak dapat menemukan referensi untuk ini di internet (sayangnya, sulit untuk mencari teks dengan karakter khusus di google.com ...). Mengapa ini terjadi?

botismarius
sumber
Bagaimana cara Anda menempelkan? Klik tengah, atau yang lainnya?
Celada
1
Saya sudah mencoba setiap metode: klik tengah, klik kanan dan pilih opsi tempel, ctrl + shift + v. Ketika karakter 0 ~ dan 1 ~ muncul, tidak masalah metode paste mana yang saya gunakan.
botismarius

Jawaban:

144

Masalahnya adalah bahwa terminal Anda berada dalam mode rekatkan kurung, tetapi tampaknya tidak mendukungnya dengan benar. Masalah telah diperbaiki di VTE, tetapi xfce4-terminal masih menggunakan versi yang lama dan tidak terawat.

Anda dapat mencoba mematikan mode tempel kurung dengan menggunakan:

printf "\e[?2004l"
Kyrias
sumber
4
Jika Anda tidak selalu dapat mereproduksinya, mungkin Anda menjalankan beberapa program yang mengaktifkan mode rekatkan braket dan kemudian macet, sehingga tidak dapat menonaktifkannya sebelum keluar.
Kyrias
4
Keren terima kasih! Saya telah berjuang dengan masalah ini selama lebih dari setahun. Apakah mungkin untuk menonaktifkan "mode tempel kurung" ini sepenuhnya? BTW, siapa yang mengimplementasikan hal-hal gila seperti itu? ;)
Adam Romanek
4
itu tergantung pada terminal Anda. Dan itu adalah fitur yang sangat berguna, karena memungkinkan aplikasi mengetahui apakah ada sesuatu yang diketik atau disisipkan. Pertama, Weechat, program IRC, menggunakannya untuk menanyakan apakah Anda ingin mengirim pasta multi-line, yang tidak dapat dilakukan tanpa mode tempel kurung, karena itu tidak akan ada cara untuk mengetahui apakah pengguna mengetikkan baris atau tidak.
Kyrias
1
Bagaimana saya dapat menemukan program mana yang mengacaukan mode tempel kurung?
aviggiano
3
Untuk distribusi berdasarkan Ubuntu, Anda dapat mencoba menginstal versi paket '
vte
78

Masalah saya disebabkan oleh sesi bash yang ditutup dengan tidak benar. Jadi menjalankan perintah resetdi terminal saya segera menyelesaikannya.

petoben
sumber
2
Ini berhasil untuk saya.
AFP_555
Dan itu berhasil untuk saya!
tomd
Terjadi dengan Ubuntu 16.04, menggunakan terminator. reset berhasil!
user1270710
Terminator saya melakukan hal yang sama, juga menjalankan Ubuntu 16.04. Berjalan resetdi koneksi ssh saya memperbaikinya.
Marcello Grechi Lins
23

Saya memiliki masalah yang sama, itu terjadi setelah saya menggunakan vi.

Milik saya diselesaikan dengan menambahkan set t_BE= ke .vimrcfile saya .

Untuk referensi , inilah yang dilakukan t_BE:

t_BE mengaktifkan mode tempel kurung

ivan
sumber
7
Itulah tepatnya penyebabnya, terima kasih! Dalam kasus saya itu dimulai ketika saya
memutakhirkan
1
dapatkah Anda menjelaskan apa yang dilakukan oleh t_BE = dan mengapa ini menyelesaikan masalah?
Francesco Boccardo
7

Perilaku ini terjadi ketika emulator terminal terjebak dalam mode tempel kurung .

Ini biasanya terjadi ketika aplikasi keluar secara tidak bersih (macet atau bermasalah).

Alasan lain untuk fenomena ini sering terjadi adalah bug dalam versi lama VTE (VTE adalah widget emulasi terminal di bawah gnome-terminaldan xfce4-terminaldan banyak lagi) yang dipicu oleh tindakan tertentu dalam utilitas tertentu seperti beralih panel di Midnight Commander .

Untuk melihat apakah bug ini diperbaiki di emulator terminal berbasis VTE yang Anda jalankan: Jalankan echo -ne '\e[>c', ini akan memasukkan beberapa karakter seolah-olah Anda mengetiknya. Jika angka tengahnya 3602atau lebih besar, bug VTE lama yang disebutkan di atas tidak ada lagi untuk Anda. Jika angkanya lebih kecil dari itu, VTE masih terpengaruh dan macet dalam mode tempel kurung lebih sering daripada yang seharusnya.

Untuk melihat apakah emulator terminal tertentu diperbaiki dalam distribusi Ubuntu tertentu, periksa dependensinya pada package.ubuntu.com . libvte-2.91-0itu bagus. libvte-2.90-9hanya baik jika versi aktual paket itu adalah 0.36.2 atau lebih baru, dan libvte9itu buruk. Khususnya, xfce4-terminalbuggy di Xenial, dan diperbaiki di Zesty.

egmont
sumber
1

Ini mungkin tidak berlaku langsung untuk masalah Anda, tetapi saya menemukan gejala ini mungkin, dalam kasus saya, disebabkan oleh editor pilihan saya 'mcedit' (Komandan Tengah Malam)

Untuk mengatasi masalah bug, saya menambahkan fungsi berikut ke file .bashrc saya:

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

Lalu 'sumber .bashrc'

Sekarang setiap kali saya menjalankan 'mcedit', secara otomatis menambahkan 'printf "\ e [? 2004l"' ketika saya menutup untuk mengatur ulang "Mode Tempel Bracketed"

Bekerja untuk saya, YMMV.

Pendekatan yang sama dapat digunakan dengan vi, vim, nano, atau program nakal lainnya.

pengguna83536
sumber