在tmux下使用$ TERM ='screen-256color',HOME和END键不起作用.为什么?

jvc*_*c26 22 bash terminal tmux

我已将tmux $TERM设置为screen-256color正确设置.这工作正常,颜色设置正确,但它阻止我发送HOMEEND键到终端,而是打印为F\nH\n.

我应该补充说,家似乎在irssi工作,但不是vim.家似乎送(据Ctrl+v <HOME>),^[OH

可能值得补充的是,我很清楚能够使用^$移动到行的开头和结尾,但是$没有结束,而是倒数第二个字符,我更喜欢使用HOMEEND(因为我能在其他$ TERM设置下).

任何人都可以解释为什么这样,以及我如何解决它?

作为一个部分修复,我设置vim键绑定将a <Home>和keypress映射<End><Esc>OH<Esc>OF.这不是理想的,但暂时起作用!有关详细信息,请参阅https://github.com/jvc26/dotfiles/blob/master/.vimrc.

谢谢!

Ala*_*ska 15

上述映射解决方案不会影响命令模式或可视模式.以下是一个更理想的解决方案,直到tmux或vim修复了这个bug(放在你的.vimrc中):

""""""""""""""
" tmux fixes "
""""""""""""""
" Handle tmux $TERM quirks in vim
if $TERM =~ '^screen-256color'
    map <Esc>OH <Home>
    map! <Esc>OH <Home>
    map <Esc>OF <End>
    map! <Esc>OF <End>
endif
Run Code Online (Sandbox Code Playgroud)