Copia-incolla nel terminale xfce4 aggiunge 0 ~ e 1 ~


105

Uso xubuntu 14.04, 64 bit. Ogni tanto, quando provo a incollare del testo in xfce4-terminal, invece del testo previsto da incollare, viene circondato da 0~e 1~, come:

0~mvn clean install1~

Il testo dovrebbe essere mvn clean install: l'ho verificato incollando il contenuto in varie altre applicazioni (gnome-terminal, gedit e altri). Ogni applicazione incolla correttamente il contenuto, tranne xfce4-terminal. Non sono riuscito a trovare riferimenti per questo su Internet (sfortunatamente, è difficile cercare testo con caratteri speciali su google.com ...). Perché succede?


Come stai incollando? Clic centrale o qualcos'altro?
Celada,

1
Ho provato tutti i metodi: clic centrale, clic destro e ho scelto l'opzione incolla, ctrl + maiusc + v. Quando vengono visualizzati i caratteri 0 ~ e 1 ~, non importa quale metodo di incollaggio utilizzi.
botismarius,

Risposte:


144

Il problema è che il tuo terminale è in modalità incolla tra parentesi, ma non sembra supportarlo correttamente. Il problema è stato risolto in VTE, ma xfce4-terminal utilizza ancora una versione precedente e non mantenuta.

Puoi provare a disattivare temporaneamente la modalità incolla tra parentesi usando:

printf "\e[?2004l"

4
Se non riesci sempre a riprodurlo, è possibile che tu stia eseguendo un programma che abilita la modalità incolla tra parentesi e quindi si è bloccato, quindi non è stato possibile disabilitarlo prima di uscire.
kyrias,

4
Fantastico, grazie! Ho lottato con questo problema per più di un anno. È possibile disabilitare completamente questa "modalità incolla parentesi"? A proposito, chi implementa cose così folli? ;)
Adam Romanek,

4
dipende dal tuo terminale. Ed è una funzionalità davvero utile, poiché consente alle applicazioni di sapere se è stato digitato o incollato qualcosa. Per prima cosa, weechat, un programma IRC, lo utilizza per chiedere se si desidera inviare paste multi-linea, cosa che non potrebbe fare a meno della modalità incolla tra parentesi, da allora non ci sarebbe modo di sapere se l'utente digitasse le righe o non.
kyrias,

1
Come posso trovare quale programma sta pasticciare con la modalità incolla tra parentesi?
aviggiano,

3
Per le distribuzioni basate su Ubuntu puoi provare a installare la versione corretta del pacchetto 'vte' da launchpad.net/~adrozdoff/+archive/ubuntu/vte
Denis Bakharev,

78

Il mio problema era dovuto a una sessione di bash mal chiusa. Quindi il comando resetin esecuzione nel mio terminale lo ha risolto immediatamente.


2
Questo ha funzionato per me.
AFP_555,

E ha funzionato per me!
tomd

È successo con Ubuntu 16.04, usando terminator. reset ha funzionato!
user1270710

Il mio terminatore stava facendo lo stesso, eseguendo anche Ubuntu 16.04. In esecuzione resetsulla mia connessione SSH risolto.
Marcello Grechi Lins,

23

Ho avuto lo stesso problema, si verifica dopo aver usato vi.

Il mio è stato risolto aggiungendo set t_BE= al mio .vimrcfile.

Per riferimento , questo è ciò che fa t_BE:

t_BE abilita la modalità incolla tra parentesi


7
Questa era esattamente la causa, grazie! Nel mio caso è iniziato quando sono
passato

1
potresti spiegare cosa fa t_BE = e perché risolve il problema?
Francesco Boccardo,

7

Questo comportamento si verifica quando l'emulatore di terminale è bloccato in modalità incolla tra parentesi .

Questo in genere accade quando un'applicazione esce in modo impuro (si arresta in modo anomalo o è difettoso).

Un altro motivo per cui il fenomeno si verifica frequentemente è un bug nelle versioni precedenti di VTE (VTE è il widget di emulazione terminale sotto gnome-terminale xfce4-terminale molti altri) che viene attivato da determinate azioni in determinate utility come l'attivazione / disattivazione dei pannelli in Midnight Commander .

Per vedere se questo bug è stato corretto nell'emulatore di terminale basato su VTE che stai eseguendo: Esegui echo -ne '\e[>c', questo inserirà alcuni caratteri come se li avessi digitati. Se il numero medio è 3602o maggiore, il suddetto vecchio bug VTE non è più presente per te. Se il numero è inferiore, VTE è ancora interessato e si blocca in modalità incolla tra parentesi più spesso di quanto dovrebbe.

Per vedere se un determinato emulatore di terminale è corretto in una determinata distribuzione di Ubuntu, controlla le sue dipendenze su packages.ubuntu.com . libvte-2.91-0è buono. libvte-2.90-9è valido solo se la versione effettiva di quel pacchetto è la 0.36.2 o successiva, ed libvte9è cattiva. In particolare, xfce4-terminalè buggy in Xenial e riparato in Zesty.


1

Questo potrebbe non essere applicabile direttamente al tuo problema, ma ho trovato questo sintomo probabilmente, nel mio caso, causato dal mio editor di scelta "mcedit" (Midnight Commander)

Per alleviare il problema, ho aggiunto la seguente funzione al mio file .bashrc:

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

Quindi 'source .bashrc'

Ora ogni volta che eseguo 'mcedit', aggiunge automaticamente 'printf "\ e [? 2004l"' quando chiudo per ripristinare la "Modalità incolla a forcella"

Funziona per me, YMMV.

Lo stesso approccio può essere utilizzato con vi, vim, nano o qualsiasi altro programma che si comporta male.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.