我目前正在使用 tmux 和 xterm-256color $TERM 变量。当在 tmux 下的 bash 中时,按 home/end 将插入波形符 (~)。在 tmux 之外,home/end 键工作正常。
使用 cat 和 tput,我可以看到生成的序列和预期的序列之间不匹配:
$ cat -v # pressing home, then end
^[[1~^[[4~
$ tput khome | cat -v; echo
^[OH
$ tput kend | cat -v; echo
^[OF
为了解决这个问题,我决定将以下内容添加到我的 .bashrc 中:
if [[ -n "$TMUX" ]]; then
bind '"\e[1~":"\eOH"'
bind '"\e[4~":"\eOF"'
fi
这解决了 bash 的问题,但是在其他 readline 程序中,例如在 ipython 等 REPL 中,它仍然会插入表示 home/end 的波形符。
首先为什么这是一个问题?为什么在 tmux 内部和外部生成的序列不同?如何解决这个问题,使其不再是任何程序中的问题?
看来主要问题是对 $TERM 使用 xterm-256color 。我将 $TERM 切换为 screen-256color,问题就消失了。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)