환경:
- 페도라 25(4.9.12-200.fc25.x86_64)
- GNOME 터미널 3.22.1은 VTE 버전 0.46.1 +GNUTLS를 사용합니다.
- VIM - Vi 개선된 8.0(2016년 9월 12일, 2017년 2월 22일 16:26:11에 편집됨)
- 멀티플렉서 2.2
저는 최근에 tmux를 사용하기 시작했는데 tmux 내부에서 실행하는지 외부에서 실행하는지에 따라 Vim의 색상이 변하는 것을 관찰했습니다. 다음은 Git diff를 볼 때 Vim 외부(왼쪽)와 tmux 내부(오른쪽)의 스크린샷입니다.
내 TERM
변수는
- 외부 tmux:
xterm-256color
- tmux 내부:
screen-256color
Vim은 다음 터미널 유형을 예상대로 보고합니다( 를 통해 :set term?
):
- 외부 tmux:
term=xterm-256color
- tmux 내부:
term=screen-256color
Vim은 또한 두 인스턴스가 모두 256색 모드에서 실행되고 있다고 보고합니다( 전달 :set t_Co?
).
- 외부 tmux:
t_Co=256
- tmux 내부:
t_Co=256
tmux에서 Vim을 256색 모드로 실행하는 것과 관련해 비슷한 질문이 많이 있습니다. (제가 찾은 가장 좋은 대답은 다음과 같습니다.여기), 그러나 위의 정보를 고려하면 그것이 내 문제는 아니라고 생각합니다.
Vim을 실행하고 터미널 유형을 다음과 같이 설정하면 screen-256color
:
$ TERM=screen-256color vim
xterm-256color
screen-256color
그래서 이것은 색상 차이를 유발하는 터미널 기능 간에 약간의 차이가 있다고 믿게 만듭니다 . 이는 제목에서 제기된 질문으로 이어집니다.터미널 기능에서 Vim의 색상이 다르게 나타나는 이유는 무엇입니까? tmux 내부와 외부에서 실행하는 것의 차이점을 알 수 있지만 :set termcap
실제로 어떤 변수가 동작의 차이를 일으키는지 궁금합니다.
이전 질문과는 별개로,tmux 내부 또는 외부에서 Vim 색상을 일관되게 유지할 수 있습니까? 내가 시도한 몇 가지 사항은 다음과 같습니다.
- tmux에서 사용하는 기본 터미널을
~/.tmux.conf
다양한 값으로 명시적으로 설정합니다(일부는 tmux의 권장 사항을 위반함).자주하는 질문):
-g 기본 터미널 "screen-256color" 설정 -g 기본 터미널 "xterm-256color" 설정 -g 기본 터미널 "screen.xterm-256color" 설정 -g 기본 터미널 "tmux-256color" 설정
tmux -2
다음을 사용하여 tmux를 시작하십시오.
모든 경우에 Vim은 tmux 내에서 계속해서 다른 색상을 표시합니다.
답변1
답변2
tmux
terminfo 기능은 지원되지 않습니다.bce
(배경색 지우기), vim
"기본 색상" 구성표를 사용할지 여부를 확인합니다.
이 기능은 tmux
여러 번 언급되었습니다.
답변3
다음 설정이 ~/.tmux.conf
저에게 효과적입니다.
# file ~/.tmux.conf
# ...
set -g default-terminal "xterm-256color"
# make colors inside tmux look the same as outside of tmux
# see https://github.com/tmux/tmux/issues/696
# see https://stackoverflow.com/a/41786092
set-option -ga terminal-overrides ",xterm-256color:Tc"
# ...
답변4
.tmux.conf
나를 위해 RGB 색상을 얻으려면 다음을 추가해야했고들어오지 못하게 하다색상 차이.
set -ag terminal-overrides ",xterm-256color:RGB"
set -g default-terminal "tmux-256color"