Как исправить странное поведение backspace с помощью urxvt + zsh?

10

Я использую urxvt в сочетании с zsh. Однако с моей новой установки ubuntu 10.04 у меня есть следующая проблема. Если я набираю backspace, курсор перемещается вправо (вместо удаления символов слева).

Предположим, что я набрал n символов, а затем нажав backspace n-times перемещает курсор n-позиции влево, если я набираю backspace, а затем еще один, курсор больше не перемещается.

Если я набираю левую стрелку, ничего не происходит, если я набираю стрелку справа after , появляется какой-то символ.

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

не помогло.

urxvt + bash работает отлично, а также xterm + zsh.

zsh-версия: 4.3.11-4ubuntu2.is.3ubuntu1 Версия rxvt-unicode: 9.09-3

Любая идея, как это исправить?

    
задан student 22.07.2011 в 14:45
источник

4 ответа

14

Попробуйте добавить следующее к вашему .zshrc:

TERM=xterm
    
ответ дан ycallaf 26.07.2011 в 10:41
источник
4

В zsh, что говорит bindkey | grep delete ? Это строки, которые я получаю:

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

У вас должно быть "^?" так как это означает обратное пространство. Если нет ... вы можете вызвать bindkey "^?" backward-delete-char в приглашении zsh, чтобы поместить его.

Помогает ли это решить проблему?

    
ответ дан Ehtesh Choudhury 22.07.2011 в 20:15
1

Это старый поток, и, возможно, никто этого не увидит, но проблема для меня была в файле .Xresources . Я неверно истолковал параметр URxvt*termName как строку, которая станет заголовком окна urxvt . Фактически это становится переменной среды $TERM , если оболочка не переопределяет ее ( bash делает).

Моим решением было добавить URxvt*termName: xterm-256color в файл ~/.Xresources . Как и при любом изменении этого файла, вам нужно будет запустить xrdb -merge ~/.Xresources и полностью перезапустить urxvt (включая% daemon процессов urxvtd ) для отображаемых изменений.

    
ответ дан Blieque 20.02.2015 в 17:58
0

Вы также можете обойти проблему, установив

stty erase '^?'

Вот некоторые подробности о девиантном поведении некоторых эмуляторов терминала (что, кстати, почему у некоторых эмуляторов есть эта проблема): Linux Backspace / Удалить мини-HOWTO .

    
ответ дан rotiyan 13.05.2013 в 13:43