Linux

[Vim] vim colorscheme를 커스터마이징해보자

윤창이 2021. 3. 31. 15:54
728x90

[주의] 개인 공부를 위해 쓴 글이기 때문에 주관적인 내용은 물론, 쓰여진 정보가 틀린 것일 수도 있습니다!

피드백 부탁드립니다. (- -)(_ _) 꾸벅

 

 


 유닉스 계열 편집 프로그램으로 vim을 쓰는데 기본 colorscheme는 뭔가 너무 눈이 아프고 가독성이 떨어졌다.

아래 링크에서 vs code의 colorscheme를 쓰려는데 

github.com/tomasiser/vim-code-dark

 

tomasiser/vim-code-dark

Dark color scheme for Vim and vim-airline, inspired by Dark+ in Visual Studio Code - tomasiser/vim-code-dark

github.com

적용했더니 색깔이 무언가 이상하다; 그래서 그냥 커스터마이징해서 내가 잘보이는 색깔로 설정하기로 했다.

vim-distinguished 라는 테마를 받아서 그 안의 파일을 수정하기로 한다.

 

github.com/Lokaltog/vim-distinguished

 

Lokaltog/vim-distinguished

A dark vim color scheme for 256-color terminals. Contribute to Lokaltog/vim-distinguished development by creating an account on GitHub.

github.com

(자꾸 외국 아쩌시 사진이 나오넹;;)

 

어쨋든 위 링크의 distinguished.vim 파일을 

/usr/share/vim/vim80/colors 안에 넣어주도록 하자. (vim80 이름은 버전에 따라 다를 수 있으니 주의)

 

distinguished.vim 파일에 아래 구문에 CTFG 부분을 원하는 color로 바꾸어주면 된다.

(참고로 CTBG는 backgroud 색깔이고, 어트리뷰트는 bold 속성 지정가능.)

 

higlight group은 대충 짐작해서 바꾸다보면 무엇을 뜻하는지 알게 될 것이다.. 

주로 Constant 부분 아래쪽 블럭이 공통 부분인 것 같다.

 

"	   | Highlight group                |  CTFG |  CTBG |    CTAttributes | || |   GUIFG |    GUIBG |   GUIAttributes |
"	   |--------------------------------|-------|-------|-----------------| || |---------|----------|-----------------|
call s:ColorDictParser({
	\   'Normal'                      : [    231,     16,               '',      'ffffff',  '000000',               '']
	\ , 'Visual'                      : [    240,    253,               '',      '585858',  'dadada',               '']
	\
	\ , 'Cursor'                      : [     '',     '',               '',      'ffffff',  'dd4010',               '']
	\ , 'lCursor'                     : [     '',     '',               '',      'ffffff',  '89b6e2',               '']
	\
	\ , 'CursorLine'                  : [     '',    236,               '',            '',  '3a3a3a',               '']
	\ , 'CursorLineNr'                : [    231,    240,               '',      'ffffff',  '585858',               '']
	\ , 'CursorColumn'                : [    231,    237,               '',      'ffffff',  '3a3a3a',               '']
	\
	\ , 'Folded'                      : [    249,    234,               '',      'b2b2b2',  '1c1c1c',               '']
	\ , 'FoldColumn'                  : [    243,    234,               '',      '767676',  '1c1c1c',               '']
	\ , 'SignColumn'                  : [    231,    233,           'bold',      'ffffff',  '193212',           'bold']
	\ , 'ColorColumn'                 : [      '',   233,               '',            '',  '262626',               '']
	\
	\ , 'StatusLine'                  : [    231,    236,           'bold',      'ffffff',  '303030',           'bold']
	\ , 'StatusLineNC'                : [    244,    232,               '',      '808080',  '080808',               '']
	\
	\ , 'LineNr'                      : [    243,    235,               '',      '767676',  '262626',               '']
	\ , 'VertSplit'                   : [    240,     '',               '',      '585858',  '1c1c1c',               '']
	\
	\ , 'WildMenu'                    : [    234,    231,               '',      '1c1c1c',  'ffffff',               '']
	\ , 'Directory'                   : [    143,     '',           'bold',      'afaf5f',        '',           'bold']
	\ , 'Underlined'                  : [    130,     '',               '',      'af5f00',        '',               '']
	\
	\ , 'Question'                    : [     74,     '',           'bold',      '5fafd7',        '',           'bold']
	\ , 'MoreMsg'                     : [    214,     '',           'bold',      'ffaf00',        '',           'bold']
	\ , 'WarningMsg'                  : [    202,     '',           'bold',      'ff5f00',        '',           'bold']
	\ , 'ErrorMsg'                    : [    196,     '',           'bold',      'ff0000',        '',           'bold']
	\
	\ , 'Comment'                     : [     28,    233,               '',      '767676',  '193212',               '']
	\ , 'vimCommentTitleLeader'       : [    250,    233,               '',      'bcbcbc',  '193212',               '']
	\ , 'vimCommentTitle'             : [    250,    233,               '',      'bcbcbc',  '193212',               '']
	\ , 'vimCommentString'            : [    245,    233,               '',      '8a8a8a',  '193212',               '']
	\
	\ , 'TabLine'                     : [    231,    238,               '',      'ffffff',  '444444',               '']
	\ , 'TabLineSel'                  : [    255,     '',           'bold',      'eeeeee',        '',           'bold']
	\ , 'TabLineFill'                 : [    240,    238,               '',      '585858',  '444444',               '']
	\ , 'TabLineNumber'               : [    160,    238,           'bold',      'd70000',  '444444',           'bold']
	\ , 'TabLineClose'                : [    245,    238,           'bold',      '8a8a8a',  '444444',           'bold']
	\
	\ , 'SpellCap'                    : [    231,     31,           'bold',      'ffffff',  '0087af',           'bold']
	\
	\ , 'SpecialKey'                  : [    239,     '',               '',      '4e4e4e',        '',               '']
	\ , 'NonText'                     : [     88,     '',               '',      '870000',        '',               '']
	\ , 'MatchParen'                  : [    231,     25,           'bold',      'ffffff',  '005faf',           'bold']
	\
	\ , 'Constant'                    : [    227,     '',           'bold',      'af875f',        '',           'bold']
	\ , 'Special'                     : [    9,     '',               '',      'afd787',        '',               '']
	\ , 'Identifier'                  : [     66,     '',           'bold',      '5f8787',        '',           'bold']
	\ , 'Statement'                   : [     39,     '',           'bold',      'd7d787',        '',           'bold']
	\ , 'PreProc'                     : [    247,     '',               '',      '9e9e9e',        '',               '']
	\ , 'Type'                        : [    9,     '',           'bold',      '5f87af',        '',           'bold']
	\ , 'String'                      : [    215,     '',               '',      'afaf5f',        '',               '']
	\ , 'Number'                      : [    193,     '',               '',      'd7875f',        '',               '']
	\ , 'Define'                      : [    193,     '',               '',      'd7875f',        '',               '']
	\ , 'Error'                       : [    193,    124,               '',      'ff8700',  'af0000',               '']
	\ , 'Function'                    : [     75,     '',               '',      'd7af5f',        '',               '']
	\ , 'Include'                     : [    177,     '',               '',      'd7875f',        '',               '']
	\ , 'PreCondit'                   : [    193,     '',               '',      'd7875f',        '',               '']
	\ , 'Keyword'                     : [    193,     '',               '',      'd7875f',        '',               '']
	\ , 'Search'                      : [    231,    131,               '',      '000000',  'ffff5f', 'underline,bold']
	\ , 'Title'                       : [    231,     '',               '',      'ffffff',        '',               '']
	\ , 'Delimiter'                   : [    246,     '',               '',      '949494',        '',               '']
	\ , 'StorageClass'                : [    187,     '',               '',      'd7d7af',        '',               '']
	\ , 'Operator'                    : [    180,     '',               '',      'd7af87',        '',               '']
	\
	\ , 'TODO'                        : [    228,     94,           'bold',      'ffff87',  '875f00',           'bold']
	\
	\ , 'SyntasticWarning'            : [    220,     94,               '',      'ffff87',  '875f00',           'bold']
	\ , 'SyntasticError'              : [    202,     52,               '',      'ffff87',  '875f00',           'bold']
	\
	\ , 'Pmenu'                       : [    248,    240,               '',      'a8a8a8',  '585858',               '']
	\ , 'PmenuSel'                    : [    253,    245,               '',      'dadada',  '8a8a8a',               '']
	\ , 'PmenuSbar'                   : [    253,    248,               '',      'dadada',  'a8a8a8',               '']
	\
	\ , 'phpEOL'                      : [    245,     '',               '',      'dadada',        '',               '']
	\ , 'phpStringDelim'              : [     94,     '',               '',      '875f00',        '',               '']
	\ , 'phpDelimiter'                : [    160,     '',               '',      'd70000',        '',               '']
	\ , 'phpFunctions'                : [    221,     '',           'bold',      'ffd75f',        '',           'bold']
	\ , 'phpBoolean'                  : [    172,     '',           'bold',      'd78700',        '',           'bold']
	\ , 'phpOperator'                 : [    215,     '',               '',      'ffaf5f',        '',               '']
	\ , 'phpMemberSelector'           : [    138,     '',           'bold',      'af8787',        '',           'bold']
	\ , 'phpParent'                   : [    227,     '',               '',      'ffff5f',        '',               '']
	\
	\ , 'PHPClassTag'                 : [    253,     '',               '',      'dadada',        '',               '']
	\ , 'PHPInterfaceTag'             : [    253,     '',               '',      'dadada',        '',               '']
	\ , 'PHPFunctionTag'              : [    222,     '',           'bold',      'ffd787',        '',           'bold']
	\
	\ , 'pythonDocString'             : [    240,    233,               '',      '585858',  '193212',               '']
	\ , 'pythonDocStringTitle'        : [    245,    233,               '',      'dadada',  '193212',               '']
	\ , 'pythonRun'                   : [     65,     '',               '',      '5f875f',        '',               '']
	\ , 'pythonBuiltinObj'            : [     67,     '',           'bold',      '5f87af',        '',           'bold']
	\ , 'pythonSelf'                  : [    250,     '',           'bold',      'bcbcbc',        '',           'bold']
	\ , 'pythonFunction'              : [    229,     '',           'bold',      'd7af5f',        '',           'bold']
	\ , 'pythonClass'                 : [    221,     '',           'bold',      'ffd75f',        '',           'bold']
	\ , 'pythonExClass'               : [    130,     '',               '',      'af5f00',        '',               '']
	\ , 'pythonException'             : [    130,     '',           'bold',      'af5f00',        '',           'bold']
	\ , 'pythonOperator'              : [    186,     '',               '',      'd7d787',        '',               '']
	\ , 'pythonPreCondit'             : [    152,     '',           'bold',      'afd7d7',        '',           'bold']
	\ , 'pythonDottedName'            : [    166,     '',               '',      'd75f00',        '',               '']
	\ , 'pythonDecorator'             : [    124,     '',           'bold',      'af0000',        '',           'bold']
	\
	\ , 'PythonInterfaceTag'          : [    109,     '',               '',      '87afaf',        '',               '']
	\ , 'PythonClassTag'              : [    221,     '',               '',      'ffd75f',        '',               '']
	\ , 'PythonFunctionTag'           : [    109,     '',               '',      '87afaf',        '',               '']
	\ , 'PythonVariableTag'           : [    253,     '',               '',      'dadada',        '',               '']
	\ , 'PythonMemberTag'             : [    145,     '',               '',      'afafaf',        '',               '']
	\
	\ , 'CTagsImport'                 : [    109,     '',               '',      '87afaf',        '',               '']
	\ , 'CTagsClass'                  : [    221,     '',               '',      'ffd75f',        '',               '']
	\ , 'CTagsFunction'               : [    109,     '',               '',      '87afaf',        '',               '']
	\ , 'CTagsGlobalVariable'         : [    253,     '',               '',      'dadada',        '',               '']
	\ , 'CTagsMember'                 : [    145,     '',               '',      'afafaf',        '',               '']
	\
	\ , 'xmlTag'                      : [    149,     '',           'bold',      'afd75f',        '',           'bold']
	\ , 'xmlTagName'                  : [    250,     '',               '',      'bcbcbc',        '',               '']
	\ , 'xmlEndTag'                   : [    209,     '',           'bold',      'ff875f',        '',           'bold']
	\
	\ , 'cssImportant'                : [    166,     '',           'bold',      'd75f00',        '',           'bold']
	\
	\ , 'DiffAdd'                     : [    112,     22,               '',      '87d700',  '005f00',               '']
	\ , 'DiffChange'                  : [    220,     94,               '',      'ffd700',  '875f00',               '']
	\ , 'DiffDelete'                  : [    160,     '',               '',      'd70000',        '',               '']
	\ , 'DiffText'                    : [    220,     94,   'reverse,bold',      'ffd700',  '875f00',   'reverse,bold']
	\
	\ , 'diffLine'                    : [     68,     '',           'bold',      '5f87d7',        '',           'bold']
	\ , 'diffFile'                    : [    242,     '',               '',      '6c6c6c',        '',               '']
	\ , 'diffNewFile'                 : [    242,     '',               '',      '6c6c6c',        '',               '']
\ })

 

t_co 256 색깔표

t_co 256가지 팔레트이니 참고하여 숫자를 입력하면 된다.

 

 

나는 위에 올린 코드처럼 살짝 vs code 느낌이 나도록 설정했다. 

~/.vimrc 에서

colorscheme distinguished

추가하는 걸 잊지말자

 

 

이쁘넹

인덴트 가이드 플러그인은 이 링크 참조


참고로 putty에서 적용하려면 Terminal-type string 부분은 xtem-256color로 바꿔주면 됩니다.

728x90