TMUX의 Vim에 잘못된 색상이 표시됨


57

우분투 11.10을 설치했습니다. 그런 다음 Gnome Terminal에 대한 Solarized 테마를 다운로드했습니다. 터미널에서 내 vim이 좋아 보입니다 : 플러그인 vim-powerline이 올바르게 표시되고 구문이 적절한 색상으로 강조 표시됩니다. 그러나 tmux를 실행하고 vim을 실행하면 구문 강조 표시는 하나의 기본 색상 만 사용하고 vim-powerline은 색상을 표시하지 않습니다. vim-powerline에 대한 FAQ를 보았고 .tmux-config에서 솔루션이 다음 줄이어야합니다.

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

그러나 작동하지 않습니다. TERM을 살펴본 결과 'xterm'이 반환되어 시도했습니다.

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

그러나 이것은 또한 도움이되지 않습니다.

이것은 .tmux.config의 유일한 줄입니다. .vimrc에는 다음 줄이 있습니다.

call pathogen#infect()
set nocompatible
set encoding=utf-8
set laststatus=2
let g:Powerline_symbols = 'fancy'
set t_Co=256
syntax enable
set background=dark
colorsheme solarized

자신의 답변에서 공감대를 얻음으로써 혜택을 얻은 사람들조차도 왜 공감대를 얻지 못했는지 알 수 없습니다. 나에게서 +1 문제는 건전하며 문제를 찾아 내 문제를 해결하는 데 도움이되었습니다.
0xC0000022L

답변:


54

다음 플래그로 tmux를 시작하면이 문제가 해결됩니다.

tmux -2

tmux 매뉴얼 페이지에서 :

-2 tmux가 단말기가 256 색을 지원한다고 가정합니다.


1
좋은 힌트입니다. Cygwin 버전의 화면에서 vim이 충돌하기 시작했을 때 나는 다시 tmux로 다시 매우 빠르게 전환했습니다. 그것을 사랑하십시오.
grantbow

1
참고-이것은 tmux 2.3 및 최신 전력선에서 저에게 효과적이었습니다. vim과 tmux 상태 표시 줄의 색상이 정말 이상했습니다.
Plasty Grove

28

Byobu 5.17 및 tmux 1.5를 사용하는 Ubuntu 10.04 LTS에서 GitHub 저장소의 최신 Solarized를 사용하여 동일한 문제가 있습니다.

파일 $TERM에서 지정하여 부분적으로 수정할 수있었습니다 .bashrc.

export TERM="xterm-256color"

또한 런치 패드에 버그가있는 것으로 보이지만 아직 해결되지 않았습니다 : byobu가 dircolor를 올바르게 표시하지 않습니다


2
이것은 나를 위해 일한 유일한 것입니다!
Tranquille

또한
dukedave

이것은 OS X에서도 해결책입니다. haha
Jay

27

이것은 나를 위해 일했다

...에서 .tmux.conf

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

...에서 .vimrc

set term=screen-256color

.vimrc에 대한 이전 값을 제거하십시오.


1
나를 위해 작동하지 않습니다. tmux 1.8, vim 7.4.1816, 커널 3.13.0-92-generic의 우분투 x86_64 참고로
fstang

1
.vimrc 설정이 없으면 .tmux.conf 만 작동했습니다.
Geison Santos

.tmux.conf 설정은 나를 위해 속였습니다!
hesselbom

4

터미널 유형은 ~ / .tmux.conf에서 screen-256color로 설정해야합니다. tmux에 TERM 환경 변수를 설정하는 방법을 알려주므로 현재 세션에서는 작동하지 않습니다. 새 세션을 시작한 다음 테스트하십시오.

여전히 작동하지 않으면 다음을 사용하여 Vim을 실행할 수 있습니다.

TERM=screen-256color vi

이것은 일회성 vi 실행에 대해서만 환경 변수를 설정합니다.

그것이 vim에 모든 색상을 표시하지 않으면 터미널 (단 하나의 터미널 에뮬레이터로 테스트하고 있는지 확실하지 않음)이 256 색상 팔레트를 지원하도록 컴파일되어 있는지 확인하십시오-아래 Perl 스크립트를 다운로드하여 실행하십시오 문제의 터미널 에뮬레이터

http://scie.nti.st/dist/256colors2.pl

추신. 나는 당신이 이미 발견 한 오타 조던 브록을 수정했다고 가정합니다.


2

Marcin Kaminski가 설명했듯이, 효과가 있다면 TERM=screen-256color vim <filename> 다음을 추가하십시오..bashrc

TERM=screen-256color

그리고 당신의 .tmux.conf:

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

나는 똑같은 문제를 겪었고, 이것은 나를 위해 일한다.


이것은 나를 위해 일한 유일한 사람이었습니다 (tmux 1.8).
Yamaneko

실제로, 나는 방금 테스트를 거쳤으며 TERM=screen-256colortmux를 screen-256color또는로 설정하는 것과 독립적으로 변경만으로 충분 했습니다 xterm-256color. 감사합니다!
Yamaneko

1

의 마지막 줄에 오타가 있습니다 .vimrc.

그것은해야한다 colorscheme solarized

그것이 도움이되는지 확실하지 않습니다 :)


0

답변 에 동일한 문제가 기록되어있을 수 있습니다 .

기본적으로 .tmux.conf 설정이 작동하고 TERM로 설정되어 screen-256color있지만 tmux는 bash를 열고 .bashrc를 호출하여 TERM다른 것으로 설정 합니다 (아마도 xterm-256color).

해결책은 TERM.bashrc가 아닌 터미널 설정에서 설정하는 것입니다. 이것이 옵션이 아닌 경우 TERM.bashrc 내부 를 검사 하고 이미있는 경우 변경할 수 없습니다 screen-256color.



0

[Solucion] [1] 귀하의 비전을 어지럽히고 Vim을 오랫동안 사용하지 않는 것이 불편합니다.

일부 전문가가 권장하는 것처럼 Vim에서 : set term = screen-256color를 실행하거나 TERM = screen-256color 환경에서 Vim을 다시 시작하여이 문제를 해결할 수 있습니다. http://sunaku.github.io/vim-256color-bce.html


2
[Solucion] [1]은 무슨 뜻인가요? 다른 답변을 참조하거나 연결하려고 했습니까? 답변이 항상 같은 순서로 나타나는 것은 아닙니다. 나는 당신이 말하는 것이 "시력을 방해하고 Vim을 오랫동안 사용하기에 불쾌하게 만들 수있다"는 것을 분명히하기 위해 이것을 확장하는 것이 좋습니다.
Eliah Kagan

0

.bashrc 또는 .zshrc에 추가하십시오.

if [[ $TERM == xterm ]]; then
    TERM=xterm-256color
fi

또한 tmux -2로 시작하십시오


0

색상에 시간을 소비하고 태양 화 된 vim이 tmux에서 작동하지 않거나 vim의 색상을 찾는 데 지친 경우 1 분 안에 작동해야하며 다음과 같이 공식 저장소에서 가져옵니다.

yum install vim-jellybeans

또는

mkdir -p ~/.vim/colors
cd ~/.vim/colors
curl -O https://raw.githubusercontent.com/nanotech/jellybeans.vim/master/colors/jellybeans.vim
touch ~/.vimrc 
sed -i '/colorscheme/d' ~/.vimrc
echo colorscheme jellybeans >> ~/.vimrc

이것은 아름다운 색상 세트로 고칠 것이며 패턴이 너무 집중되어 유용합니다. 하이라이트, 검색어를 설정하려고 시도하면 이것입니다. 모든 것이 이미 사용하도록 설정되었습니다. 구성 파일에서 색상을 변경할 수도 있습니다.

아무것도 설치하지 않고 간단한 빠른 솔루션을 원한다면 위를 무시하고 vim에서 시도하십시오.

:colo ron 'ron'을 다음 세트로 바꾸고 복원 할 수도 있습니다. solo default

blue 
darkblue 
default
delek
desert
elflord
evening
koehler
morning.vim
murphy
pablo
peachpuff
ron
shine
slate
torte
zellner

.vimrc에 저장하십시오

colo ron
syntax on

부정적인 피드백을 준 사람 정당한 이유를 들려주세요.
Seandex
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.