Vim sa che xterm like terminali (identificati mediante TERM iniziano xterm
, o una particolare risposta alla sequenza t_RV
, se definito) supportare le sequenze estesi per alcuni tasti modificati, ma non assume questo per screen
TERMINI (che dovresti usare sotto tmux).
È possibile, tuttavia dire a Vim di queste sequenze e consentire loro se TMux è presente, e TERM inizia con screen
(le prime linee consentono (migliore supporto del mouse) sotto tmux, che potrebbero piacerti anche):
if &term =~ '^screen' && exists('$TMUX')
set mouse+=a
" tmux knows the extended mouse mode
set ttymouse=xterm2
" tmux will send xterm-style keys when xterm-keys is on
execute "set <xUp>=\e[1;*A"
execute "set <xDown>=\e[1;*B"
execute "set <xRight>=\e[1;*C"
execute "set <xLeft>=\e[1;*D"
execute "set <xHome>=\e[1;*H"
execute "set <xEnd>=\e[1;*F"
execute "set <Insert>=\e[2;*~"
execute "set <Delete>=\e[3;*~"
execute "set <PageUp>=\e[5;*~"
execute "set <PageDown>=\e[6;*~"
execute "set <xF1>=\e[1;*P"
execute "set <xF2>=\e[1;*Q"
execute "set <xF3>=\e[1;*R"
execute "set <xF4>=\e[1;*S"
execute "set <F5>=\e[15;*~"
execute "set <F6>=\e[17;*~"
execute "set <F7>=\e[18;*~"
execute "set <F8>=\e[19;*~"
execute "set <F9>=\e[20;*~"
execute "set <F10>=\e[21;*~"
execute "set <F11>=\e[23;*~"
execute "set <F12>=\e[24;*~"
endif
Come indica il commento, è inoltre necessario che l'opzione xterm-keys
della finestra sia abilitata. Si può fare questo per tutte le finestre di questo tipo (in ~/.tmux.conf
):
set-option -gw xterm-keys on
(Ricordate che le modifiche ai ~/.tmux.conf
non vengono caricati automaticamente Per essere efficace, è necessario eseguire il comando manuale (in un tmux
. comando shell, o al prompt Prefisso :
) o caricare nuovamente il file di configurazione con (in un comando di shell o un prefisso :
) o riavviare il server (uscire da tutte le sessioni e riavviare tmux)).
fonte
2013-03-18 07:38:24
È possibile che il sistema operativo o il terminale stiano intercettando quelle sequenze di tasti. Il mio Vim non sembra riceverli con il mio attuale setup KiTTY/tmux, ma non l'ho esaminato troppo. –
Queste mappature funzionano al di fuori di tmux? Qual è il tuo '$ TERM' in tmux? – romainl
Sì, i mapping funzionano fuori da tmux. '$ TERM' in tmux è lo stesso di' tmux', che è 'xterm-256color'. –