TMUX 내부에서 실행할 때 Vim의 키를 엉망으로 만들었습니다.


9

나는 tmux를 가지고 놀고 있었고 그것을 좋아합니다. 그러나 vim을 실행할 때 성가신 문제가 있습니다.

어떻게 든 화살표 키가 다시 매핑되지만 Command-T를 실행할 때와 같이 특정 시간에만 파일 목록을 아래로 스크롤하려고하면 명령이 취소되고 화살표 키에 따라 삽입 모드로 전환됩니다. A, B, C 또는 D를 눌렀습니다.

예를 들어 화살표를 사용하여 버퍼를 통해 이동하면 제대로 작동합니다.

어떤 아이디어?

감사!


1
$TERM밖에 무엇입니까 tmux? 내부는 어떻습니까? 응용 프로그램 및 일반 키패드 모드에서 문제가 발생하는 것 같습니다.
추후 공지가있을 때까지 일시 중지되었습니다.

tmux 외부 : xterm, inside : screen ... 그래서 실행 TERM=screen vim하면 동일한 동작이 표시되므로 화면을 수정해야합니까?
Ivan

답변:


13

set -g default-terminal "xterm".tmux.conf에 간단히 추가 했습니다.

이것은 tmux가 화면 대신 xterm을 사용하도록 만들었으므로 인생은 아름답고 키 바인딩에서 스톰 핑에 대해 걱정할 필요가 없습니다.


5
이것처럼 더 set -g default-terminal "xterm-256color"좋습니다. 그렇지 않으면 제한된 색상으로 인해 시각 모드에있을 때 알 수 없었습니다.
Macario 2019

1
나는 이것을와 결합해야했다 set -g xterm-keys on.
Dan Stahlke

4
tmux의 man 페이지가 결코 설정하지 않는다고 말한 것은 주목할 가치가 default-terminal있습니다. 파급 효과가 무엇인지 잘 모르겠습니다.
Dan Stahlke

1
default-terminal설정하지 말아야 할 경고가 주어지면, 아마도 vim 측에서 더 나은 수정이있을 것입니다 : link .
Dan Stahlke

내 경우에는 작동하지 않습니다 ...
Blaszard

6

마지막으로 내 대답을 찾았 습니다 .OSX에서 화면을 실행할 때 command + r은 모든 화면에서 vim의 화살표 키를 엉망으로 만듭니다.

이상한 점은 내 .vimrc 파일에 하나의 매핑 만 추가했다는 것입니다.

map <Esc>[B <Down>

그러나 단일 매핑으로 모든 화살표 키가 올바르게 작동합니다.


어떻게 든 ...이를 CentOS 6.3에 나를 위해 일한 유일한 솔루션이었다
Patryk

이것은 나에게 전혀 의미가 없지만 단일 매핑을 추가하면 모든 키를 수정하는 것처럼 보입니다. 삽입 모드에서 키 누르기에 대한 직접 매핑이 낯선 사람 (적어도 나에게는)조차도 수정하지 않습니다 ( map ^[A <Up>Ctrl + V <Up> map ^[OA <Up>을 누르고 O를 삭제하고 Ctrl + V <Up>을 누르고 O를 남겨두면 작동합니다) '티). 나는 그것을 얻지 못한다. .. 그러나 무엇이든. 내 열쇠는 이제 작동합니다. 감사합니다.
ND Geek


1

누군가 가이 솔루션이 작동하지 않아 화가 날 경우를 대비하십시오.

실제로 tmux + vim + AutoClose vim 플러그인을 사용하고 있지 않은지 확인하십시오 . 자동 닫기는 ABCD 문자를 이전 줄에 삽입하는 원인을 매핑합니다!

방금 플러그인을 지우고 제대로 작동합니다.


감사합니다! 이것은 나를위한 것이었다. 내가 사용하는 결국 이 자동 종료 - 플러그인을 대신. 비슷한 기능을 제공합니다.
ollpu

0

Command-T는 터미널에서 실행될 때 매핑하여 멍청한 짓을합니다. $ TERM이 vt100 * 또는 xterm * 인 경우 매핑을 건너 뛰지 만 좋은 해결책은 아닙니다.


0

명령 행 모드에서 커서를 이동하려는 사람들은 블로그 게시물을보십시오. 나는 vimrc에 8 줄을 추가했다.

" Needed for tmux and vim to play nice
" Needed for tmux and vim to play nice
map <Esc>[A <Up>
map <Esc>[B <Down>
map <Esc>[C <Right>
map <Esc>[D <Left>

" Console movement
cmap <Esc>[A <Up>
cmap <Esc>[B <Down>
cmap <Esc>[C <Right>
cmap <Esc>[D <Left>
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.