linux - Home/End 键在 tmux 中不起作用

我目前正在使用带有 xterm-256color $TERM 变量的 tmux。在 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,问题就消失了。

https://stackoverflow.com/questions/18600188/

相关文章:

linux - 如何在不创建父目录的情况下使用 wget 镜像目录?

linux - 如何阅读有关内置 zsh 命令的文档?

linux - 在类 Unix 系统中上次运行的 cron 作业的详细信息?

linux - 如何使用 curl 或 wget 将文件下载到目录中?

c - libc(glibc) 在我们的 linux 应用程序中的作用是什么?

python - 从终端调用时使用默认 Python 而不是 Anaconda 安装

linux - Bash:WAITING超时

mysql - 你能推荐一个免费的 Linux 轻量级 MySQL GUI 吗?

linux - 永久更改 GDB 中的反汇编风格

c++ - 在 Ubuntu 中学习 OpenGL