Home / End键在tmux中不起作用

我目前正在使用xterm-256color $ TERMvariables的tmux。 在tmux下的bash中,按home / end将插入波浪号(〜)。 家庭/结束键之外的tmux工作正常。

使用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内部和外部时,生成的序列是不同的? 如何解决这个问题,以便在任何程序中都不是问题?

Solutions Collecting From Web of "Home / End键在tmux中不起作用"

看来主要的问题是使用$ TERM的xterm-256color。 我把$ TERM换成了256色的屏幕,问题就消失了。

在tmux 2.0中,您可以将这两行添加到.tmux.conf

 bind -n End send-key Ce bind -n Home send-key Ca 

如果由于某种原因想要在tmux中保留xterm-256color,请使用inputrc的arch解决方案 。 我用rxvt,ruby irb,python,lua和home / end键测试了tmux。 大概每个readline应用程序都可以。