Vim에서는 단어를 건너뛰도록 Ctrl+화살표 키를 설정했습니다. gnome 터미널 내에서 Vim을 실행할 때는 제대로 작동합니다.
그러나 사용시화면(tmux) 이상한 동작을 보여줍니다. 커서 뒤의 모든 항목을 삭제합니다.
참고로 내 vim 설정은 다음과 같습니다.
:inoremap <C-Left> <C-\><C-O>b
:inoremap <C-Right> <C-\><C-O>w
답변1
문제는 두 가지입니다. 첫째, tmux
제어 화살표 키는 기본적으로 한 유형의 이스케이프 시퀀스에서 다른 유형으로 변환됩니다. 따라서 다음과 같은 특수 키는 controlleft수정자 없이 전송됩니다. 다양한 이스케이프 시퀀스를 자주 보면 다음과 같은 내용을 볼 수 있습니다.vim
leftcat -v
^[OD
이와 반대로(tmux 외부):
^[[1;5D
선
set-window-option -g xterm-keys on
이 부분을 수정했습니다. 다른 부분은 tmux
기본적으로 사용되는 터미널 설명 입니다 screen
. 터미널 설명에 없음설명하다화살표 키를 제어합니다. 터미널 데이터베이스의 다음 항목은 VTE(gnome-terminal)에 가장 적합합니다.
다음과 같은 것들이 있습니다.
screen
해당 TERM
외부 항목이 자동 으로 선택되지 vte
않으면 런타임 시 자동으로 선택되며 해당 구성 파일을 수정해야 합니다.vte-256color
tmux
screen
그런데 .no conflict를 방해할 수 있는 "screen.xterm" 항목이 없습니다 TERM=xterm-new
.
기본(최소) 터미널 데이터베이스가 있는 경우(예:ncurses-base
데비안에서는 이것이 없을 수도 있습니다. 더 일반적으로xterm-256color
, vim 및 tmux와 함께 사용할 수 있을 만큼 가깝습니다.
예를 들어, 이것을 파일에 추가하면 .tmux.conf
vim에서 예상한 대로 작동합니다.
set -g default-terminal "xterm-256color"
추가 자료:
- XTERM 확장(터미널 데이터베이스)
- vim: 화살표 키를 할당하는 방법
- 내 키보드가 보내는 내용을 어떻게 확인할 수 있나요?
답변2
여기에서byobu에서 키 조합을 바인딩 해제할 수 있습니다.
파일을 생성합니다 ~/.byobu/.tmux.conf
(존재하는 경우 추가).
set-window-option -g xterm-keys on
그런 다음 다음을 추가하십시오 ~/.byobu/keybindings.tmux
.
unbind-key -n C-Left
unbind-key -n C-Right