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

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

我将 urxvt 与 zsh 结合使用。但是,自从我新安装了 ubuntu 10.04 以来,我遇到了以下问题。如果我输入退格键,光标会向右移动(而不是删除左侧的字符)。

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

如果我输入左箭头,什么也不会发生,如果我输入右箭头然后出现某个字符。

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

没有帮助。

urxvt + bash 和 xterm + zsh 运行良好。

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

知道如何修复这个问题吗?

答案1

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

TERM=xterm

答案2

在 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 提示符下输入它。

这能解决问题吗?

答案3

您还可以通过设置来解决问题

stty erase '^?'

以下是有关某些终端仿真器的异常行为的一些详细信息(顺便说一下,这就是某些仿真器出现此问题的原因):Linux 退格键/删除迷你指南

答案4

这是一个老话题,可能没人会看到,但对我来说问题出在文件中.Xresources。我错误地将URxvt*termName参数解释为将成为窗口标题的字符串urxvt。事实上,$TERM除非 shell 覆盖它(bash确实如此),否则它将成为环境变量。

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

相关内容