Подтвердить что ты не робот

С $TERM = 'screen-256color' в tmux ключи HOME и END не работают. Зачем?

У меня tmux настроен с $TERM, установленным на screen-256color правильно. Это прекрасно работает, и цвета настроены правильно, однако это мешает мне отправлять клавиши HOME и END на терминал, которые вместо этого печатаются как F\n и H\n.

Я должен добавить, что дом, похоже, работает в irssi, но не vim. Кажется, что дом отправляется (согласно Ctrl+v <HOME>), ^[OH

Возможно, стоит добавить, что мне хорошо известно, что можно использовать ^ и $ для перехода к началу и концу строк, однако $ не подходит к концу, а предпоследний и я предпочитаю использовать HOME и END (как я могу в других настройках $TERM).

Может кто-нибудь объяснить, почему это так, и как я могу это исправить?

Как исправление частично, я установил привязки клавиш vim для сопоставления клавиш <Home> и <End> на <Esc>OH и <Esc>OF. Это не идеально, но работает на данный момент! Подробнее см. https://github.com/jvc26/dotfiles/blob/master/.vimrc.

Спасибо!

4b9b3361

Ответ 1

Вышеописанное решение сопоставления не влияет на командный режим или визуальный режим. Следующее является более идеальным решением до тех пор, пока 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

Ответ 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

Ответ 3

Также возможно установить привязки клавиш в .inputrc, как описано в файле archlinux Home_and_End_keys_not_working или .zshrc, как показано на zshwiki/zle/bindkeys. В этом другом вопросе stackoverflow есть несколько дополнительных полезных советов home-end-keys-do-not-work-in-tmux