Solarized를 사용하는 iTerm2의 vim에서 잘못된 색상


84

터미널 vim (비 GUI) 및 태양 광 색 구성표에서 iTerm2에 이상한 문제가 있습니다. 먼저 iTerm2를 어두운 태양 광 색 구성표를 사용하도록 설정했습니다.

나는 또한 vim을 위해 solarized를 사용하고 있습니다. 내 .vimrc에 다음 줄이 있습니다.

set background=dark
colorscheme solarized

터미널에서 색 구성표가 잘못 보입니다. 콘솔 정력

참고로 이것은 MacVim (gui vim)에서 보이는 방식입니다. 구이 빔

내 콘솔 vim에서 색상이 올바르게 보이도록하려면 iTerm 또는 .vimrc에서 무엇을 변경해야합니까?

답변:


118

확인해야 할 몇 가지 사항 :

  1. iTerm2의 환경 설정-> 프로파일-> 터미널의 "터미널 에뮬레이션"에서 "보고서 터미널 유형 :"이 xterm-256color로 설정되어 있습니다.

  2. .vimrc에는 256 색을 사용하도록 설정할 수있는 몇 가지 옵션이 있습니다.

    set background=dark
    " solarized options 
    let g:solarized_visibility = "high"
    let g:solarized_contrast = "high"
    colorscheme solarized
    
    그리고 그중 하나가 작동하지만 먼저 # 1입니다.

그러나 Snow Leopard에 내장 된 기본 vim을 사용하는 경우 256 색을 지원하지 않기 때문에 작동하지 않습니다. 저는 Lion에 내장 된 버전이 그렇다고 믿습니다.

편집 : 이 답변에 대한 여러 의견을 바탕으로 위 let g:solarized_termcolors = 256.vimrc예 에서 줄을 제거했습니다 . 일부에게는 문제가 될 수 있습니다. 다른 하나는 선을 추가하면 let g:solarized_termcolors = 16컬러 디스플레이 문제가 해결 되었다고 말합니다 . 귀하의 마일리지는 다를 수 있습니다.

두 번째 편집 : 태양 광 색상 팔레트를 iTerm2에로드 한 경우 let g:solarized_termcolors=16. 태양 광 팔레트를 iTerm2 색상 사전 설정으로 사용 하지 않는let g:solarized_termcolors=256 경우 에만 .


13
사실, "let g : solarized_termcolors = 256"이 저에게 잘못 표시되는 솔라리 제이션 의 원인 이었습니다. git repo ( github.com/vim-scripts/Solarized ), "터미널 사용자를위한 중요 참고 사항 :"에 따라 "let g : solarized_termcolors = 16"을 사용해야합니다.
Sai Perchard

3
터미널에 태양 광 색상 구성표를 사용하는 경우 16 ANSI 색상이 태양 광 색상으로 설정되며이 경우을 설정 let g:solarized_termcolors=16합니다. 256을 사용하면 가까워 지지만 배경은 진한 바다색 대신 회색이됩니다.
Parker Selbert 2012

2
256Lion에서 진한 파란색 대신 회색 배경을 제공하는 것 같지만 16내 vimrc에서 해당 변수를 생략 한 것과 똑같습니다. 아 글쎄요, 짙은 회색이 제가 이전에 얻은 정말 밝은 회색보다 낫습니다.
styfle 2012-08-25

1
@SaiPerchard 코멘트가 답변에 추가되어야합니다. 나를 위해 이것은 잘못된 배경색을 고친 것입니다.
Marten Sytema

1
나를 위해 작동하지 않았습니다. stackoverflow.com/a/12969298/1945990 그래도 작동했습니다 . ITerm, 태양 광 테마 및 vim 태양 광 테마.
Mike W

91

위의 답변은 저에게 효과적이지 않았습니다.

OS X 10.7.4에서 vim 7.3과 함께 iTerm2를 사용하고 있습니다.

위의 솔루션이 당신에게도 효과가 없다면, 이것을 시도하십시오

syntax on
set background=dark
let g:solarized_termtrans = 1
colorscheme solarized

업데이트 : Jim Stewart에 따르면 이것은 Kitty 에서도 작동합니다 .


여기 저도 마찬가지입니다 ... 그 솔루션에 감사드립니다!
freitass

2
Windows 7에서 KiTTY (PuTTY 파생 상품)를 사용하고 let g:solarized_termtrans = 1있으며 빈 줄의 배경색이 회색이지만 내용 후에 텍스트가있는 줄의 배경색이 검은 색인 문제를 해결했습니다.
Jim Stewart

그들은 검은 thuogh가 아닙니다 :(
Setheron

당신이 다른 색 구성표를 사용하는 경우, 당신이 할 수있는 hi Normal ctermbg=NONE그 무엇을 본질적으로 이후 termtrans의 솔라리에서 (지금까지의 내가 그들의 소스에서 말할 수있는) 않습니다
Achal 데이브

1
이것은 작업에 가장 가깝고 배경색을 올바르게 설정하지만 내 cursorline, colorcolumn 및 줄 번호 열은 모두 검정색 배경을 가지고 있습니다. 결코 쉬운 일이 아닙니다!
Ian Vaughan

13

https://github.com/altercation/solarized/tree/master/iterm2-colors-solarized

Solarized 패키지 ( https://github.com/altercation/solarized )를 다운로드 하고 지침을 따르십시오.

iTerm 2를 열고 기본 설정을 열고 기본 설정 도구 모음에서 "프로필"(이전의 주소, 이전 책갈피) 아이콘을 클릭 한 다음 "색상"탭을 선택합니다. "로드 사전 설정"을 클릭하고 "가져 오기 ..."를 선택합니다. Solarized Light 또는 Dark 테마 파일을 선택합니다.

이제 Solarized 색상 사전 설정을 iTerm 2에로드했지만 아직 적용하지 않았습니다. 적용하려면 왼쪽에있는 프로필 목록 창에서 기존 프로필을 선택하거나 새 프로필을 만듭니다. 그런 다음 "Load Presets"드롭 다운에서 Solarized Dark 또는 Solarized Light 사전 설정을 선택합니다.

===================================

또는:

cd ~/.vim/bundle
git clone git://github.com/altercation/vim-colors-solarized.git

.vimrc 수정

어두운 테마 :

syntax enable
set background=dark
colorscheme solarized

syntax enable
set background=light
colorscheme solarized

2
이전 답변 중 어느 것도 내 문제를 해결하지 못하지만 이것은 해결합니다. 나에게 빠진 것은 색상 사전 설정이었습니다.
Sophia Feng

10

이것은 터미널뿐만 아니라 iTerm 2의 OS X 10.9.1에서 저에게 효과적이었습니다. 내가 저지른 실수 중 하나는 termtrans 및 termcolors 설정 앞에 colorscheme 선언을 넣는 것이 었습니다 (그리고 작동하려면 둘 다 필요했습니다). 다른 사람들이 말했듯이 터미널 유형을 xterm-256color로 설정했습니다.

if !has("gui_running")
    let g:solarized_termtrans=1
    let g:solarized_termcolors=256
endif

colorscheme solarized
set background=dark

7

OSX 10.11.6, iTerm2 Build 3.0.12에서 동일한 문제로 고생했습니다.

여기에 대한 수정 사항이 있습니다.

  1. .vimrc

    구문 enable set background = dark colorscheme solarized

  2. 보고서 터미널 유형을로 설정합니다 xterm-256color.

여기에 이미지 설명 입력

  1. 프로필의 색상 사전 설정을 Solarized Dark로 설정

여기에 이미지 설명 입력


이것이 내가 다른 색상 사전 설정을 시도하는 데 필요한 단서 였기 때문에 256을 넘는 색상 이스케이프 코드가 Mac과 Linux에서 다르게 취급된다는 사실을 발견했습니다. Mac에서는 256 개 이상의 색상이 선택된 8 개의 ANSI 색상 중 하나로 병합 된 것보다 변조 된 것처럼 보였으며, Linux에서는 색상을 감싸고 선택하는 모듈러스를 수행하는 것으로 보입니다.
Eric Leschinski

6

작성자 : http://ethanschoonover.com/solarized/vim-colors-solarized

터미널 사용자를위한 중요 참고 사항 :

터미널 모드에서 Solarized를 사용하려는 경우 (예 : gvim 또는 macvim과 같은 GUI 버전이 아님) Solarized 팔레트를 사용하도록 터미널 에뮬레이터의 colorscheme을 설정하는 것을 고려하십시오. Solarized 홈페이지에서 다운로드 할 수있는 공식 Solarized 다운로드에 Xdefaults와 함께 인기있는 터미널 에뮬레이터 용 팔레트를 포함 시켰습니다. 이러한 색상없이 Solarized를 사용하는 경우 Solarized는 제한된 256 터미널 팔레트와 호환되는 세트로 색상 표를 저하 시키도록 지시해야합니다 (단말기의 16 ansi 색상 값을 사용하여 Solarized에 대한 정확한 특정 값을 설정할 수 있음) 팔레트).

사용자 정의 터미널 색상을 사용하는 경우 solarized.vim이 즉시 작동합니다. 256 색을 지원하는 터미널 에뮬레이터를 사용 중이고 사용자 지정 Solarized 터미널 색상을 사용하지 않으려는 경우 성능이 저하 된 256 색 구성표를 사용해야합니다. 이렇게하려면 colorschem solarized 라인 앞에 다음 라인을 추가하면됩니다.

let g:solarized_termcolors=256

다시 말하지만 수동으로 또는 가져올 수있는 여러 터미널 구성표 중 하나를 통해 터미널 색상을 Solarized 값으로 변경하는 것이 좋습니다.


이것이 비 GUI MacVim에서 태양 광 색상을 사용하도록 iTerm2를 얻을 수있는 유일한 방법이었습니다.
Aaron Tribou

4

Bill Turner의 대답은 작동하지만 MacVim과 정확히 일치하는 색상을 얻는 방법이 있습니다. Solarized는 다른 터미널 에뮬레이터 중에서 iTerm2를 특별히 지원합니다.

  1. 로 이동 iterm2 - 색상 - 솔라리 GitHub의 페이지
  2. "설치"의 지침을 따르십시오.
  3. .vimrc에 줄이 있는지 확인하십시오. colorscheme solarized

이것은 iTerm2의 vim 색상을 GUI 편집기에서와 똑같이 설정해야합니다.


대답에서 알 수 있듯이 Bill Turner의 대답도 정확하지만 이것은 solarized주제 를 설정하는 공식적인 (따라서 올바른) 방법 입니다.
Can

1

이 문제를 해결하는 간단한 방법은 다음과 같습니다.

vim-color-solarized의 색상 디렉토리에는 'solarozed.vim'이라는 arquive가 있습니다.

이 파일을 열고 검색 :
exe "let s : bg_back = '".s : vmode. "bg =". s : back. "'"

대체 :
exe "let s : bg_back = '".s : vmode. "bg =". s : none. "'"


1

여전히 문제가있는 경우 iterm2 solarized color profile을 설치했습니다 . vim 번들에 vim-color-solarized 를 설치 하고 지침을 따르는 것은 불필요하고 호환되지 않았습니다. 위의 화면 캡처와 같은 재미있는 강조 문제가있었습니다.

교훈 : 둘 다하지 마십시오.


0

나는 이전의 모든 제안을 시도했습니다. 방금 set t_Co=256.vimrc에 추가 했는데 수정되었습니다. tmux별칭 을 만들 거나 구성 파일을 변경할 필요가 없었습니다 .


0

이전 답변 중 어느 것도 나를 위해 일하지 않았습니다. 분명히 나는 ​​누락되었습니다.

set termguicolors
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.