[vim] vimdiff를 사용할 때 다른 색 구성표로드

할 때 다른 색 구성표를로드하는 방법 vimdiff.

내 현재의 색 구성표가에 약간의 차이를 표시하지 않기 때문에 이것을 원합니다 vimdiff. 예를 들어, 일부 diff는 동일한 fg / bg 색상으로 표시됩니다. 이것은 diff를 이해하기가 매우 어렵습니다. 그래서 내가 할 때마다 vimdiff해야 할 일:colorscheme some_other_scheme

.vimrc파일로 할 수 있습니까 ?



답변

vimdiff명령 줄에서 전화 를 거는 경우 다음을 입력하십시오 .vimrc.

if &diff
    colorscheme some_other_scheme
endif

당신이 정력 내에서 vimdiff를 사용하는 경우, 당신이 중 하나를 시작하는 데 사용하는 명령을 무시해야 할 것 /을 (예 : 중지 diffthis, diffoff사용) :cnoreabbr(A도있다 플러그인 ) 또는 자동 명령을 사용합니다 :

au FilterWritePre * if &diff | colorscheme xyz | endif

외부 프로그램 (diff 유틸리티)을 통해 필터링하기 전에 FilterWritePre가 호출되고 &diff-옵션은 diff 모드로 들어갈 때 vim에 의해 설정됩니다 (다른 것들 중에서도 참조 :help diff).

그래도 원래의 색상 구성표로 돌아 가기 위해 어떤 자동 명령을 사용해야하는지 잘 모르겠습니다.


답변

vim이 왜 많은 색상을 사용하여 강조 표시하는지 모르겠지만 실제로 무슨 일이 일어나고 있는지 알아내는 데 도움이되지 않습니다.

한 가지 색만 사용 하여 강조 표시하고 (한 줄에 차이가있는 위치를 표시하기 위해 다른 색을 사용하도록) 색 구성표를 수정 하여 모든 차이를 만들었습니다.

전에

여기에 이미지 설명을 입력하십시오

colorscheme_screenshot

내 colorscheme 파일 ( ~/.vim/colors/mycolorscheme.vim) 끝에 다음을 추가하여이 작업을 수행했습니다 .

highlight DiffAdd    cterm=bold ctermfg=10 ctermbg=17 gui=none guifg=bg guibg=Red
highlight DiffDelete cterm=bold ctermfg=10 ctermbg=17 gui=none guifg=bg guibg=Red
highlight DiffChange cterm=bold ctermfg=10 ctermbg=17 gui=none guifg=bg guibg=Red
highlight DiffText   cterm=bold ctermfg=10 ctermbg=88 gui=none guifg=bg guibg=Red
  • cterm -스타일을 설정
  • ctermfg -텍스트 색상을 설정
  • ctermbg -하이라이트 설정
  • DiffAdd -라인이 추가되었습니다
  • DiffDelete -라인이 제거되었습니다
  • DiffChange -라인의 일부가 변경되었습니다 (전체 라인을 강조 표시합니다)
  • DiffText -변경된 줄의 정확한 부분

이 링크 를 색상 번호에 대한 참조로 사용 했습니다 .

참고 : macvim / gvim에 다른 색상 구성표를 사용하기 때문에 GUI 옵션을 설정하지 않았습니다


답변

내 질문에 대답하려면 :

if &diff
    colorscheme evening
endif


답변

가장 쉬운 방법은이 한 줄짜리를 ~ / .vimrc 파일에 붙여 넣는 것입니다.

" Fix the difficult-to-read default setting for diff text highlighting.  The
" bang (!) is required since we are overwriting the DiffText setting. The highlighting
" for "Todo" also looks nice (yellow) if you don't like the "MatchParen" colors.
highlight! link DiffText MatchParen


답변

읽을 수없는 색 구성표 (미운뿐만 아니라 분홍색 배경의 흰색 텍스트처럼 읽을 수 없음)가 발생하는 경우 256 색 대신 16 색을 사용하면 쉽게 해결할 수 있습니다. 그런 다음 색 구성표를 망칠 필요가 없습니다.

그 이유는 기본 vimdiff 색 구성표 DiffChange bg가 “LightMagenta”로 할당 되어 256 색으로 매우 연한 분홍색으로 매핑되기 때문입니다. 흰색 텍스트로는 읽을 수 없습니다. 16 가지 색상의 “LightMagenta”는 굵은 자홍색으로 매핑되어 흰색 텍스트가 훨씬 잘 나타납니다.

다음과 같은 방법으로 빠른 테스트를 수행 할 수 있습니다.

vimdiff <file1> <file2>
:set t_Co?    " print current setting (256 by default)
:highlight    " print highlighting scheme
:set t_Co=16  " set to 16 colors
:highlight    " print highlighting scheme

256 색 스크린 샷
여기에 이미지 설명을 입력하십시오

16 색 스크린 샷
여기에 이미지 설명을 입력하십시오

보시다시피 16 가지 색상은 색상 구성표를 변경하지 않고도 훨씬 읽기 쉽습니다.

이 영구적하려면, 당신은 추가 할 수 있습니다 set t_Co=16.vimrc


답변

몰로카이 :
몰로카이 색 구성표
github :
github 색 구성표
github와 molokai의 두 테마는 똑같이 아름답습니다.

curl -fLo ~/.vim/colors/molokai.vim --create-dirs https://raw.githubusercontent.com/tomasr/molokai/master/colors/molokai.vim
curl -fLo ~/.vim/colors/github.vim --create-dirs https://raw.githubusercontent.com/endel/vim-github-colorscheme/master/colors/github.vim

~ / .vimrc에 다음 코드를 입력하면 github 또는 molokai를 선택할 수 있습니다 ( “로 시작하는 줄은 주석입니다).

if &diff
"   colorscheme github
    colorscheme molokai
endif


답변

매우 우수한 Solarized 테마 를 사용하는 사람들을 위해 diff 모드의 가시성을 높이는 옵션이 있습니다.

" ~/vim.rc
" Set high visibility for diff mode
let g:solarized_diffmode="high"

“표준”
여기에 이미지 설명을 입력하십시오

“높은”
여기에 이미지 설명을 입력하십시오

“낮은”
여기에 이미지 설명을 입력하십시오