22

我已将 tmux 设置$TERMscreen-256color正确设置。这工作正常,颜色设置正确,但它阻止我发送HOMEEND密钥到终端,而是打印为F\nand H\n

我应该补充一点,家庭似乎在 irssi 中工作,但不是 vim。家似乎发送(根据Ctrl+v <HOME>),^[OH

可能值得补充的是,我很清楚使用^$移动到行首和行尾的能力,但是$不会到最后,而是倒数第二个字符,我更喜欢使用HOMEand END(我可以在其他 $TERM 设置下)。

谁能解释这是为什么,以及我该如何解决?

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

谢谢!

4

3 回答 3

15

上述映射方案不影响命令模式或可视模式。以下是更理想的解决方案,直到 tmux 或 vim 修复错误(放入您的.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
于 2012-03-12T20:17:02.440 回答
2

作为修复,我将 vim 键绑定设置为将 a<Home>和keypress 映射<End><Esc>OHand <Esc>OF

" Handle TERM quirks in vim
if $TERM =~ '^screen-256color'
    set t_Co=256
    nmap <Esc>OH <Home>
    imap <Esc>OH <Home>
    nmap <Esc>OF <End>
    imap <Esc>OF <End>
endif
于 2012-02-26T13:39:16.623 回答
2

也可以按照archlinux Home_and_End_keys_not_working或zshwiki /zle/bindkeys.inputrc中的说明设置键绑定。this other stackoverflow question有一些额外的有用提示home-end-keys-do-not-work-in-tmux.zshrc

于 2014-01-21T08:04:14.227 回答