2013-09-03 5 views
33

현재 xterm-256color $ TERM 변수와 함께 tmux를 사용하고 있습니다. tmux 아래의 bash에서 home/end를 누르면 물결표 (~)가 삽입됩니다. tmux 외부에서는 홈/엔드 키가 정상적으로 작동합니다. 고양이와 tput을 사용홈/키가 tmux에서 작동하지 않습니다.

, 내가 생성 된 예상 시퀀스 사이에 불일치가 있다고 볼 수 있습니다 :

if [[ -n "$TMUX" ]]; then 
    bind '"\e[1~":"\eOH"' 
    bind '"\e[4~":"\eOF"' 
fi 
:

$ cat -v # pressing home, then end 
^[[1~^[[4~ 
$ tput khome | cat -v; echo 
^[OH 
$ tput kend | cat -v; echo 
^[OF 

는이 문제를 해결하려면이, 나는 내 .bashrc에 다음을 추가하기로 결정

bash의 문제가 수정되었지만 ipython과 같은 REPL과 같은 다른 readline 프로그램에서도 home/end에 물결표가 삽입됩니다.

왜 이것이 처음부터 문제가되는 것입니까? 왜 tmux 내부에있을 때 생성 된 시퀀스가 ​​다른 것입니까? 이것을 수정하여 어떤 프로그램에서도 문제가되지 않도록 할 수 있습니까?

+0

을이 TMUX 설정에 대한 좋은 질문입니다,하지만 난 당신이 CTRL-A/E '에 익숙해하려고 제안/f/B /''alt-B/F ...'(emacs bind) 커서가 – Kent

+0

btw 커서를 움직이면 도움이 될까요? http://stackoverflow.com/questions/8604150/with-term-screen-256color-under-tmux-home-and-end-keys-dont-work-why – Kent

+0

현재 Ctrl-a를 명령 키 접두어로 사용하고 있습니다. tmux (화면과 유사). 이전에이 게시물을 살펴 봤지만 Vim에만 적용되는 것처럼 보였고 Vim에서 저에게 중요한 문제는 아닙니다. –

답변

26

주요 문제는 $ TERM에 xterm-256color를 사용하는 것입니다. 나는 $ TERM을 screen-256color로 바꿨고 문제는 사라졌다.

+0

내 비슷한 문제는'http : // zshwiki.org/home/zle/bindkeys'에서와 같이'.inputrc' ('info readline' 참조) 또는'.zshrc'의 zsh을 사용하여 키 바인딩을 설정함으로써 해결되었습니다 – here

+3

편집' ~/.tmux.conf'를 추가하고'set -g default-terminal "화면을 추가하십시오 -256color"' – Wernight

+1

이 답변은 GNU Screen과 동일한 문제에도 적용됩니다. 방금 term-screen-256color를 내 ~/.screenrc에 추가했습니다. –

4

어떤 이유로 tmux에 xterm-256color로 머물고 싶다면 arch solution을 inputrc와 함께 사용하십시오. 필자는 rxvt, ruby ​​irb, python, lua 및 home/end 키가있는 tmux에서이를 테스트했습니다. 아마 모든 readline 앱이 괜찮을 것입니다.

+0

링크를 통해 내 모든 문제 덕분에 TERM을 재정의했습니다 –

+0

~/.inputrc 파일을 편집하면 저에게 효과적이었습니다. – mike

17

TMUX 2.0, 당신은 당신의 .tmux.conf에서이 두 줄을 추가 할 수 있습니다

bind -n End send-key C-e 
bind -n Home send-key C-a 
+0

이것은 readline (및 Emacs)에서만 작동하며 의도하지 않은 결과가 다른 곳에서 발생합니다. –

관련 문제