Attualmente sto usando tmux con variabile $ TERM xterm-256color. Quando in bash sotto tmux, premendo home/end si inseriscono i caratteri tilde (~). Al di fuori di tmux le chiavi home/end funzionano bene.Home/Fine tasti non funzionano in tmux
Utilizzando gatto e tput, ho potuto vedere che c'era una mancata corrispondenza tra le sequenze generate e attese:
$ cat -v # pressing home, then end
^[[1~^[[4~
$ tput khome | cat -v; echo
^[OH
$ tput kend | cat -v; echo
^[OF
Per risolvere questo problema, ho deciso di aggiungere il seguente al mio .bashrc:
if [[ -n "$TMUX" ]]; then
bind '"\e[1~":"\eOH"'
bind '"\e[4~":"\eOF"'
fi
Questo ha risolto il problema per bash, tuttavia in altri programmi readline, ad esempio all'interno di un REPL come ipython, inserisce ancora una tilde per home/end.
Perché esattamente questo è un problema in primo luogo? Perché la sequenza generata è diversa quando sono all'interno di tmux o al di fuori di esso? Come può risolvere questo in modo che non sia un problema in nessun programma?
questa è una buona domanda per tmux config, però vorrei suggerire cercando di abituarsi a 'Ctrl-A/E/F/B/'' alt-B/F ... '(emacs bind) per spostare il cursore – Kent
btw, se questo ti aiuta? http://stackoverflow.com/questions/8604150/with-term-screen-256color-under-tmux-home-and-end-keys-dont-work-why – Kent
Attualmente utilizzo ctrl-a per il prefisso della chiave di comando in tmux (simile allo schermo). Ho guardato quel post prima, ma sembra riguardare solo Vim, e non è un problema per me in Vim. –