vim과 tmux의 배경색이 일치하지 않습니다.

vim과 tmux의 배경색이 일치하지 않습니다.

tmux를 실행할 때 vim에서 모든 색상이 작동하도록 하는 데 문제가 있습니다. 나는 이것이 TERM 변수 또는 256 색상과 관련된 일종의 문제라고 생각하지만 수정 없이 vim, tmux 및 iTerm에서 256 색상이 작동하도록 온라인에서 찾을 수 있는 모든 것을 시도했습니다. 작은 문제인데 심각하게 고민되네요.

다음은 iTerm을 통해 vi​m에서 실행되는 샘플 코드 파일입니다. 아이텀

이것은 tmux 및 iTerm을 통해 vim에서 실행되는 동일한 파일입니다. 여기에 이미지 설명을 입력하세요.

여기에 코드를 작성할 때만 배경색이 약간 일치하지 않는 것처럼 보입니다. 왜 그럴까요?

내 iTerm 터미널은 set t_Co=256로 설정되어 있습니다 vimrc. 내 iTerm 터미널은 로 설정되어 있습니다 xterm-256color. 내 iTerm 터미널은 set -g default-terminal xterm-256color다음으로 설정되어 있습니다 tmux.conf.

if [ -e /usr/share/terminfo/x/xterm-256color ]; then
     export TERM='xterm-256color'
else
     export TERM='xterm-color'
fi

.profile. 이 정확한 문제는 제가 작업하는 Ubuntu 기반 시스템에서 재현되었으며 거기에서 동일한 구성 파일을 모두 사용하고 있습니다. 이는 적어도 문제가 OS/iTerm 독립적인 것으로 분리됩니다.

답변1

이것은 오래된 질문이지만 Google 검색에서 높은 순위를 차지하지만 도움이 되지 않습니다. 이것은 마침내 나에게 문제를 해결했습니다.

존재하다.tmux.conf:

set -g default-terminal "screen-256color"
set -ga terminal-overrides ",*256col*:Tc"

존재하다.vimrc:

if exists('+termguicolors')
  let &t_8f = "\<Esc>[38;2;%lu;%lu;%lum"
  let &t_8b = "\<Esc>[48;2;%lu;%lu;%lum"
  set termguicolors
endif

답변2

뒤에 다음 줄을 추가하십시오..tmux.conf

set -g default-terminal "screen-256color"

아래 줄을 추가해야 합니다..vimrc

set term=screen-256color

마지막으로 별칭을 추가해야 합니다..bashrc

alias tmux='tmux -2'

답변3

TERM=screen-256colortmux 내부에서는 다음과 같이 설정해야 합니다 .여기이는 tmux 내부에서만 작동하지만 tmux에서 셸을 열 때 얻는 값 이나 값을 tmux.conf무조건 덮어쓰는지 확인하세요 .TERM.bashrc

관련 정보