Copy-Paste no xfce4-terminal adiciona 0 ~ e 1 ~

75

Eu uso o xubuntu 14.04, 64 bit. De vez em quando, quando tento colar algum texto no xfce4-terminal, em vez do texto esperado para ser colado, ele é cercado por 0~ e 1~ , como:

0~mvn clean install1~

O texto deve ser mvn clean install - verifiquei isso colando o conteúdo em vários outros aplicativos (gnome-terminal, gedit e outros). Cada aplicativo cola corretamente o conteúdo, exceto o xfce4-terminal. Não encontrei referências para isso na internet (infelizmente, é difícil pesquisar texto com caracteres especiais em google.com ...). Por que isso acontece?

    
por botismarius 14.04.2015 / 11:09

5 respostas

108

A questão é que o seu terminal está no modo de colar de colchetes, mas parece que não é compatível com isso. O problema foi corrigido no VTE, mas o xfce4-terminal ainda está usando uma versão antiga e não-mantida.

Você pode tentar desativar temporariamente o modo de colar entre colchetes usando:

printf "\e[?2004l"
    
por 16.04.2015 / 13:14
33

Meu problema foi devido a uma sessão bash mal fechada. Então, executar o comando reset no meu terminal resolveu imediatamente.

    
por 07.02.2018 / 20:08
22

Eu tive o mesmo problema, ocorre depois de usar o vi.

A minha foi resolvida adicionando set t_BE= ao meu arquivo .vimrc .

Para referência , é isso que t_BE faz:

t_BE enable bracketed paste mode

    
por 27.10.2017 / 00:38
5

Esse comportamento ocorre quando o emulador de terminal está preso em modo de colagem entre colchetes .

Isso geralmente acontece quando um aplicativo sai sem limpeza (falha ou apresenta bugs).

Outra razão para o fenômeno ocorrer com frequência é um bug em versões mais antigas do VTE (VTE é o widget de emulação de terminal em gnome-terminal e xfce4-terminal e muito mais) que é acionado por determinadas ações em determinados utilitários, como alternando os painéis no Midnight Commander .

Para ver se este bug foi corrigido no emulador de terminal baseado em VTE que você está executando: Execute echo -ne '\e[>c' , isso irá inserir alguns caracteres como se você os tivesse digitado. Se o número do meio for 3602 ou maior, o antigo bug VTE já mencionado não estará mais presente para você. Se o número for menor que isso, o VTE ainda é afetado e fica preso no modo de colar entre colchetes com mais frequência do que deveria.

Para ver se um determinado emulador de terminal foi corrigido em uma determinada distribuição do Ubuntu, verifique suas dependências em packages.ubuntu.com . libvte-2.91-0 é bom. libvte-2.90-9 só será bom se a versão real desse pacote for 0.36.2 ou mais recente e libvte9 for ruim. Em particular, xfce4-terminal tem bugs no Xenial e é fixado no Zesty.

    
por 28.11.2017 / 20:46
1

Isto pode não se aplicar diretamente ao seu problema, mas eu achei este sintoma provavelmente, no meu caso, causado pelo meu editor de escolha 'mcedit' (Midnight Commander)

Para aliviar o problema do bug, adicionei a seguinte função ao meu arquivo .bashrc:

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

Então, 'source .bashrc'

Agora, toda vez que executo 'mcedit', ele adiciona automaticamente o 'printf' \ e [? 2004l "'quando eu fecho para redefinir o" Modo de Colar em Bracketed "

Funciona para mim, YMMV.

A mesma abordagem pode ser usada com o vi, vim, nano ou qualquer outro programa que se comporte mal.

    
por 03.06.2018 / 15:35