vim
어떻게 모여서 놀 수 있을지 고민 중이에요 tmux
.
내 문제는 을 사용할 때 제대로 xterm-256color
작동 vim
하지만 배경이 올바르게 렌더링되지 않는다는 것입니다.
를 사용하여 이 문제를 해결했습니다 screen-256color
. 괜찮아 보이지만 중단됩니다 Ctrl + arrow keys
(삽입 모드로 들어가서 4개 행을 삭제함). 이 매핑을 사용하여 전환하고 싶습니다 vim
.
어떻게 작동하게 합니까?
답변1
최적의 기능을 위해서는 여러 수준의 구성을 올바르게 설정해야 합니다.
- 구성멀티플렉서시퀀스를 식별합니다. 시작하기 전에멀티플렉서, 터미널 에뮬레이터에 적합한 TERM 값을 설정합니다(예
xterm-256color
: ). TERM 환경 변수로 식별되는 terminfo 데이터베이스 항목은 다음을 알려줍니다.멀티플렉서수정된 화살표 키 시퀀스를 식별하는 방법(사용자 정의 기능 {kUP
,kDN
,kRIT
,kLFT
}{,3
..7
}) 구성멀티플렉서시퀀스를 생성합니다.
xterm-keys
세션 옵션을 다음으로 설정하세요 .on
멀티플렉서TERM 식별자 시퀀스를 받으면 고유한 xterm 스타일 시퀀스를 생성합니다. 당신의~/.tmux.conf
:set-option -g xterm-keys on
- 내부에서 실행되는 프로그램 구성멀티플렉서대부분의 시퀀스를 사용/예상합니다.
screen
내부적으로 -를 기반으로 하는 용어를 사용해야 합니다.멀티플렉서(예를 들어screen-256color
). 내부에서 실행중인 프로그램을 알려줍니다.멀티플렉서제어 방법멀티플렉서터미널 (재)에뮬레이션 및 예상되는 응답멀티플렉서. 불행하게도
screen
terminfo 기반 데이터베이스 항목은 일반적으로 수정된 화살표 키에 대한 순서를 정의하지 않습니다(즉, 아무 것도 없을 수 있습니다kUP
등).멀티플렉서그러한 순서가 발생하는 것으로 알려지지 않았을 가능성이 있습니다. 이러한 키를 인식하려는 프로그램을 수동으로 구성해야 합니다. 존재하다윔, 이것을 다음 항목에 넣을 수 있습니다~/.vimrc
.if &term =~ '^screen' " 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" endif
x
-variant를 사용하면 일반 화살표 키가 작동하지 않는 경우, 없는 변형 (예:<Up>
대신 등) 을 사용할 수 있습니다 .<xUp>
x
이와 같이 키를 정의하면 각 수정자 조합(Shift, Control, Control+Shift, Meta, Meta+Shift, Meta+Control, Meta+Control+Shift)을 개별적으로 매핑할 필요가 없다는 장점이 있습니다
*
. 모든 관련 시퀀스를 처리합니다(참조:help xterm-modifier-keys
).그러면 시퀀스를 하드코딩하는 대신 키를 매핑할 수 있습니다.
nnoremap <C-Right> gt nnoremap <C-Left> gT
답변2
cat
관련 키를 실행하고 눌러 tmux
생성된 이스케이프 코드를 찾으세요. 나에게 이것은 ^[[D
과 을 제공합니다 ^[[C
. 그런 다음 이러한 이스케이프 코드를 직접 매핑하십시오.
nnoremap ^[[D gT
nnoremap ^[[C gt
vim에서 눌러서 삽입할 수 있는 ^[
이스케이프 문자는 어디에 있습니까 ?<CTRL-v><ESC>
답변3
여기에 설명된 대로, 장애를 입히다배경색 지우기(BCE) t_ut
터미널 옵션을 지우면( :set t_ut=
Vim에서 실행한 다음 Control+를 눌러 L터미널 디스플레이를 새로 고침) tmux 및 GNU 화면에서 Vim을 사용할 때 색 구성표가 올바르게 작동합니다.
이렇게 하면 올바른 Vim 색 구성표 렌더링을 얻는 동시에 올바른 키 감지 TERM
값을 유지할 수 있습니다! xterm-256color
:-)
답변4
set t_Co=256
~/.vimrc의 설정이 도움이 됩니까? 이는 단지 색상 설정일 뿐이지만 일부 문제를 해결하는 데 도움이 될 수 있습니다.
ctrl+Arrow
~/.vimrc...에서 키를 다시 매핑할 수도 있습니다.
ctrl+Arrow
편집: GNU 스크린 세션을 사용해 보셨나요 ? 내 생각에는 이것이 당신의 문제일지도 모릅니다.