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
    

おすすめ記事