如何使用urxvt + zsh修复奇怪的退格行为?


15

我将urxvt与zsh结合使用。但是,由于我全新安装了ubuntu 10.04,因此出现以下问题。如果键入退格键,光标将移至右侧(而不是删除左侧的字符)。

假设我键入n个字符,然后按n次退格键,则将光标向左移动n个位置;如果我键入Backspace键,则再按一次,光标将不再移动。

如果我输入左箭头,则什么也不会发生,如果我随后输入右箭头则会出现一些字符。

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

没有帮助。

urxvt + bash以及xterm + zsh都可以正常工作。

zsh-version:4.3.11-4ubuntu2.is.3ubuntu1 rxvt-unicode版本:9.09-3

任何想法如何解决这个问题?

Answers:


19

尝试将以下内容添加到您的.zshrc中:

TERM=xterm

这为我固定了FWIW。
赛斯,2011年

5
更好地使用TERM=xterm-256color以支持256色。
xuhdev '16

1
您不是通过使用xterm而不是urxvt来避免此问题吗?
villasv

1
是的,这也对我有用。我将Linux的Windows子系统(WSL)与Ubuntu和ZSH结合使用,一直困扰着我很久。这次真是万分感谢。
戴夫·里德

7

在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提示符下调用以将其放入。

这样可以解决问题吗?


1
绑定键| grep delete“ ^ D” delete-char-or-list“ ^?” 向后删除字符
学生


1

这是一个旧线程,也许没有人会看到这一点,但是对我来说,问题出在.Xresources文件中。我将URxvt*termName参数误解为将成为urxvt窗口标题的字符串。实际上,这是成为$TERM环境变量的东西,除非shell覆盖它(bash确实)。

我的解决方案是添加URxvt*termName: xterm-256color~/.Xresources文件中。与对该文件所做的任何更改一样,您将需要运行xrdb -merge ~/.Xresources并完全重新启动urxvt(包括urxvtd守护进程)以显示更改。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.