Copier-coller dans xfce4-terminal ajoute 0 ~ et 1 ~


105

J'utilise xubuntu 14.04, 64 bits. De temps en temps, lorsque j'essaie de coller du texte dans xfce4-terminal, au lieu du texte à coller, il est entouré de 0~et 1~, par exemple:

0~mvn clean install1~

Le texte est censé être mvn clean install- j'ai vérifié cela en collant le contenu dans diverses autres applications (gnome-terminal, gedit et autres). Chaque application colle correctement le contenu, sauf xfce4-terminal. Je n'ai trouvé aucune référence à cela sur Internet (malheureusement, il est difficile de rechercher du texte avec des caractères spéciaux sur google.com ...). Pourquoi cela arrive-t-il?


Comment allez-vous coller? Clic du milieu ou autre chose?
Celada

1
J'ai essayé toutes les méthodes: clic du milieu, clic droit et option de collage choisie, ctrl + shift + v. Lorsque les caractères 0 ~ et 1 ~ apparaissent, peu importe la méthode de collage que j'utilise.
botismarius

Réponses:


144

Le problème est que votre terminal est en mode coller entre crochets, mais ne semble pas le prendre en charge correctement. Le problème a été résolu dans VTE, mais xfce4-terminal en utilise toujours une version ancienne et non maintenue.

Vous pouvez essayer de désactiver temporairement le mode coller entre crochets en utilisant:

printf "\e[?2004l"

4
Si vous ne pouvez pas toujours le reproduire, il se peut que vous exécutiez un programme qui activait le mode coller entre crochets, puis il se bloquait et ne pouvait donc pas le désactiver avant de quitter.
Kyrias

4
Super merci! Je suis aux prises avec ce problème depuis plus d'un an. Est-il possible de désactiver complètement ce "mode de collage entre crochets"? BTW, qui met en œuvre de telles choses folles? ;)
Adam Romanek

4
cela dépend de votre terminal. Et c'est une fonctionnalité très utile, car elle permet aux applications de savoir si quelque chose a été tapé ou collé. D'une part, weechat, un programme IRC, l'utilise pour vous demander si vous souhaitez envoyer des pâtes multilignes, ce qu'il ne pourrait pas faire sans le mode coller entre crochets, car il n'y aurait aucun moyen de savoir si l'utilisateur a tapé les lignes ou ne pas.
Kyrias

1
Comment trouver quel programme joue avec le mode coller entre crochets?
aviggiano

3
Pour les distributions basées sur Ubuntu, vous pouvez essayer d'installer la version corrigée du paquet 'vte' depuis launchpad.net/~adrozdoff/+archive/ubuntu/vte
Denis Bakharev

78

Mon problème était dû à une session bash mal fermée. Donc, exécuter la commande resetdans mon terminal le résolut immédiatement.


2
Cela a fonctionné pour moi.
AFP_555

Et ça a fonctionné pour moi!
Tomd

Arrivé avec Ubuntu 16.04, en utilisant un terminateur. réinitialiser a fonctionné!
user1270710

Mon terminateur faisait la même chose, exécutant également Ubuntu 16.04. Courir resetsur ma connexion ssh a résolu le problème.
Marcello Grechi Lins

23

J'ai eu le même problème, il se produit après que j'utilise vi.

Le mien a été résolu en ajoutant set t_BE= à mon .vimrcdossier.

Pour référence , voici ce que fait t_BE:

t_BE activer le mode coller entre crochets


7
C'était exactement la cause, merci! Dans mon cas, cela a commencé lorsque je suis passé à VIM 8
Rgerganov

1
Pourriez-vous s'il vous plaît expliquer quel ensemble t_BE = fait et pourquoi il résout le problème?
Francesco Boccardo

7

Ce problème se produit lorsque l'émulateur de terminal est bloqué en mode coller entre crochets .

Cela se produit généralement lorsqu'une application se termine mal (se bloque ou est bogué).

Une autre raison du phénomène de se produire est souvent un bogue dans les anciennes versions de TEV (TEV est le widget d'émulation de terminal sous gnome-terminalet xfce4-terminalet beaucoup d' autres) qui est déclenchée par certaines actions dans certains services publics tels que basculer les panneaux dans Midnight Commander .

Pour voir si ce bogue est corrigé dans l'émulateur de terminal basé sur VTE que vous exécutez: Exécutez echo -ne '\e[>c', cela insérera quelques caractères comme si vous les aviez tapés. Si le nombre du milieu est 3602supérieur ou supérieur, l’ancien bogue VTE susmentionné n’est plus présent pour vous. Si le nombre est inférieur, VTE est toujours affecté et reste bloqué en mode de collage entre crochets plus souvent qu'il ne le devrait.

Pour voir si un certain émulateur de terminal est corrigé dans une certaine distribution Ubuntu, vérifiez ses dépendances sur packages.ubuntu.com . libvte-2.91-0est bon. libvte-2.90-9n’est valable que si la version actuelle de ce paquetage est 0.36.2 ou plus récente et qu’elle libvte9est mauvaise. En particulier, xfce4-terminalc'est buggy dans Xenial, et corrigé dans Zesty.


1

Cela ne s’applique peut-être pas directement à votre problème, mais j’ai trouvé que ce symptôme était probablement causé par mon éditeur de choix, «mcedit» (Midnight Commander).

Pour atténuer le problème de bogue, j'ai ajouté la fonction suivante à mon fichier .bashrc:

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

Puis 'source .bashrc'

Maintenant, chaque fois que j'exécute 'mcedit', il ajoute automatiquement le 'printf "\ e [? 2004l"' lorsque je ferme pour réinitialiser le "Mode coller entre crochets"

Ça marche pour moi, YMMV.

La même approche peut être utilisée avec vi, vim, nano ou tout autre programme qui se comporte mal.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.