Como corrigir um comportamento estranho de backspace com urxvt + zsh?

11

Eu uso o urxvt em combinação com o zsh. No entanto, desde a minha nova instalação do Ubuntu 10.04 eu tenho o seguinte problema. Se eu digitar backspace, o cursor se moverá para a direita (em vez de excluir os caracteres à esquerda).

Suponha que eu digitei n caracteres, em seguida, pressionando backspace n-times move o cursor n- posições para a esquerda, se eu digitar backspace, em seguida, mais um, o cursor não se move mais.

Se eu digitar a seta para a esquerda, nada acontece, se eu digitar a seta para a direita depois , algum caractere ocorre.

mv .zshrc .zshrc.bak
mv .Xdefaults .Xdefaults.bak

não ajudou.

urxvt + bash funciona bem assim como xterm + zsh.

zsh-version: 4.3.11-4ubuntu2.is.3ubuntu1 versão rxvt-unicode: 9.09-3

Alguma ideia de como corrigir isso?

    
por student 22.07.2011 / 16:45

4 respostas

15

Tente adicionar o seguinte ao seu .zshrc:

TERM=xterm
    
por ycallaf 26.07.2011 / 12:41
4

Em zsh, o que bindkey | grep delete diz? Estas são as linhas que recebo:

"^D" delete-char-or-list
"^H" backward-delete-char
"^[3;5~" delete-char
"^[[3~" delete-char
"^?" backward-delete-char

Você deveria ter "^?" como isso representa backspace. Se não ... você pode chamar bindkey "^?" backward-delete-char no prompt zsh para colocá-lo.

Isso resolve o problema?

    
por Ehtesh Choudhury 22.07.2011 / 22:15
1

É um tópico antigo e talvez ninguém veja isso, mas o problema para mim estava no arquivo .Xresources . Eu tinha interpretado erroneamente o parâmetro URxvt*termName como a string que se tornaria o título da janela urxvt . Na verdade, é o que se torna a variável de ambiente $TERM , a menos que o shell o substitua ( bash faz).

Minha solução foi adicionar URxvt*termName: xterm-256color ao arquivo ~/.Xresources . Como acontece com qualquer alteração neste arquivo, você precisará executar xrdb -merge ~/.Xresources e reiniciar completamente urxvt (incluindo urxvtd daemon) para que as alterações sejam exibidas.

    
por Blieque 20.02.2015 / 18:58
0

Você também pode contornar o problema definindo

stty erase '^?'

Aqui estão alguns detalhes sobre o comportamento desviante de certos emuladores de terminal (que é, a propósito, por que certos emuladores têm esse problema): Backspace do Linux / Excluir mini-HOWTO .

    
por rotiyan 13.05.2013 / 15:43