vim과 tmux가 제대로 작동하도록 만드는 방법은 무엇입니까?

vim과 tmux가 제대로 작동하도록 만드는 방법은 무엇입니까?

vim어떻게 모여서 놀 수 있을지 고민 중이에요 tmux.

내 문제는 을 사용할 때 제대로 xterm-256color작동 vim하지만 배경이 올바르게 렌더링되지 않는다는 것입니다.

를 사용하여 이 문제를 해결했습니다 screen-256color. 괜찮아 보이지만 중단됩니다 Ctrl + arrow keys(삽입 모드로 들어가서 4개 행을 삭제함). 이 매핑을 사용하여 전환하고 싶습니다 vim.

어떻게 작동하게 합니까?

답변1

최적의 기능을 위해서는 여러 수준의 구성을 올바르게 설정해야 합니다.

  1. 구성멀티플렉서시퀀스를 식별합니다. 시작하기 전에멀티플렉서, 터미널 에뮬레이터에 적합한 TERM 값을 설정합니다(예 xterm-256color: ). TERM 환경 변수로 식별되는 terminfo 데이터베이스 항목은 다음을 알려줍니다.멀티플렉서수정된 화살표 키 시퀀스를 식별하는 방법(사용자 정의 기능 { kUP, kDN, kRIT, kLFT}{, 3.. 7})
  2. 구성멀티플렉서시퀀스를 생성합니다. xterm-keys세션 옵션을 다음으로 설정하세요 .on멀티플렉서TERM 식별자 시퀀스를 받으면 고유한 xterm 스타일 시퀀스를 생성합니다. 당신의 ~/.tmux.conf:

    set-option -g xterm-keys on
    
  3. 내부에서 실행되는 프로그램 구성멀티플렉서대부분의 시퀀스를 사용/예상합니다. screen내부적으로 -를 기반으로 하는 용어를 사용해야 합니다.멀티플렉서(예를 들어 screen-256color). 내부에서 실행중인 프로그램을 알려줍니다.멀티플렉서제어 방법멀티플렉서터미널 (재)에뮬레이션 및 예상되는 응답멀티플렉서.
  4. 불행하게도 screenterminfo 기반 데이터베이스 항목은 일반적으로 수정된 화살표 키에 대한 순서를 정의하지 않습니다(즉, 아무 것도 없을 수 있습니다 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).

  5. 그러면 시퀀스를 하드코딩하는 대신 키를 매핑할 수 있습니다.

    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 스크린 세션을 사용해 보셨나요 ? 내 생각에는 이것이 당신의 문제일지도 모릅니다.

관련 정보