web-dev-qa-db-fra.com

Le copier-coller dans xfce4-terminal ajoute 0 ~ et 1 ~

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 attendu à coller, il est entouré de 0~ et 1~, tel que:

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, à l'exception de xfce4-terminal. Je n'ai trouvé aucune référence à ce sujet sur Internet (malheureusement, il est difficile de rechercher du texte avec des caractères spéciaux sur google.com ...). Pourquoi cela arrive-t-il?

117
botismarius

Le problème est que votre terminal est en mode de collage 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 ancienne version non maintenue.

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

printf "\e[?2004l"
164
kyrias

Mon problème était dû à une session bash mal fermée. L'exécution de la commande reset dans mon terminal l'a donc résolu immédiatement.

91
petobens

J'ai eu le même problème, il se produit après avoir utilisé vi.

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

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

t_BE activer le mode de collage entre crochets

26
ivan

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

Cela se produit généralement lorsqu'une application se termine de manière incorrecte (se bloque ou est boguée).

Une autre raison pour laquelle le phénomène se produit fréquemment est un bogue dans les anciennes versions de VTE (VTE est le widget d'émulation de terminal sous gnome-terminal et xfce4-terminal et bien d'autres) qui est déclenchée par certaines actions dans certains utilitaires tels que basculer les panneaux dans Midnight Commander .

Pour voir si ce bogue est résolu dans l'émulateur de terminal VTE que vous exécutez: Exécuter echo -ne '\e[>c', cela insérera quelques caractères comme si vous les aviez tapés. Si le chiffre du milieu est 3602 ou plus, l'ancien bogue VTE susmentionné n'est plus présent pour vous. Si le nombre est inférieur à cela, 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-0 est bon. libvte-2.90-9 n'est valable que si la version réelle de ce package est 0.36.2 ou plus récente, et libvte9 est mauvais. En particulier, xfce4-terminal est bogué dans Xenial et corrigé dans Zesty.

7
egmont

Cela peut ne pas s'appliquer directement à votre problème, mais j'ai trouvé que ce symptôme était probablement, dans mon cas, dû à 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 de collage entre crochets"

Fonctionne pour moi, YMMV.

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

1
user83536