我已将tmux设置为$TERM
正确设置为screen-256color
。此工作正常,并且颜色设置正确,但是它阻止我将HOME
和END
键发送到终端,而是将其打印为F\n
和H\n
。
我应该补充一点,家庭似乎在irssi工作,但不是vim。 Home似乎发送(根据Ctrl+v <HOME>
),^[OH
值得一提的是,我很清楚能够使用^
和$
移动到行的开头和结尾,但是$
不会去结束,而不是倒数第二个字符,我更喜欢使用HOME
和END
(正如我可以在其他$ TERM设置下)。
任何人都可以解释为什么会这样,以及我如何解决它?
作为部分修复,我设置vim键绑定以将<Home>
和<End>
按键映射到<Esc>OH
和<Esc>OF
。这不是理想的,但暂时起作用!有关详细信息,请参阅https://github.com/jvc26/dotfiles/blob/master/.vimrc。
谢谢!
答案 0 :(得分:14)
上述映射解决方案不会影响命令模式或可视模式。以下是更理想的解决方案,直到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
答案 1 :(得分:2)
作为修复,我设置vim键绑定以将<Home>
和<End>
按键映射到<Esc>OH
和<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
答案 2 :(得分:2)
也可以像Home_and_End_keys_not_working上的解释一样设置.inputrc
中的键绑定,如zshwiki/zle/bindkeys或.zshrc
上所述。此其他stackoverflow问题还有一些其他有用的提示home-end-keys-do-not-work-in-tmux