自定义语法着色vim
在vim中,您可以调用一个主题,例如“colo:desert”,并将某些语法着色,这些语法没有着色,比如说我想将“访问验证”和“面板”的单词着色为绿色vim会让met这样做吗 下面是我的沙漠主题,我用它来着色我的语法自定义语法着色vim,vim,syntax,colors,Vim,Syntax,Colors,在vim中,您可以调用一个主题,例如“colo:desert”,并将某些语法着色,这些语法没有着色,比如说我想将“访问验证”和“面板”的单词着色为绿色vim会让met这样做吗 下面是我的沙漠主题,我用它来着色我的语法 " cool help screens " :he group-name " :he highlight-groups " :he cterm-colors set background=dark if version > 5
" cool help screens
" :he group-name
" :he highlight-groups
" :he cterm-colors
set background=dark
if version > 580
" no guarantees for version 5.8 and below, but this makes it stop
" complaining
hi clear
if exists("syntax_on")
syntax reset
endif
endif
let g:colors_name="desert"
hi Normal guifg=White guibg=grey20
" highlight groups
hi Cursor guibg=khaki guifg=slategrey
"hi CursorIM
"hi Directory
"hi DiffAdd
"hi DiffChange
"hi DiffDelete
"hi DiffText
"hi ErrorMsg
hi VertSplit guibg=#c2bfa5 guifg=grey50 gui=none
hi Folded guibg=grey30 guifg=gold
hi FoldColumn guibg=grey30 guifg=tan
hi IncSearch guifg=slategrey guibg=khaki
"hi LineNr
hi ModeMsg guifg=goldenrod
hi MoreMsg guifg=SeaGreen
hi NonText guifg=LightBlue guibg=grey30
hi Question guifg=springgreen
hi Search guibg=peru guifg=wheat
hi SpecialKey guifg=yellowgreen
hi StatusLine guibg=#c2bfa5 guifg=black gui=none
hi StatusLineNC guibg=#c2bfa5 guifg=grey50 gui=none
hi Title guifg=indianred
hi Visual gui=none guifg=khaki guibg=olivedrab
"hi VisualNOS
hi WarningMsg guifg=salmon
"hi WildMenu
"hi Menu
"hi Scrollbar
"hi Tooltip
" syntax highlighting groups
hi Comment guifg=SkyBlue
hi Constant guifg=#ffa0a0
hi Identifier guifg=palegreen
hi Statement guifg=khaki
hi PreProc guifg=indianred
hi Type guifg=darkkhaki
hi Special guifg=navajowhite
"hi Underlined
hi Ignore guifg=grey40
"hi Error
hi Todo guifg=orangered guibg=yellow2
" color terminal definitions
hi SpecialKey ctermfg=darkgreen
hi NonText cterm=bold ctermfg=darkblue
hi Directory ctermfg=darkcyan
hi ErrorMsg cterm=bold ctermfg=7 ctermbg=1
hi IncSearch cterm=NONE ctermfg=yellow ctermbg=green
hi Search cterm=NONE ctermfg=grey ctermbg=blue
hi MoreMsg ctermfg=darkgreen
hi ModeMsg cterm=NONE ctermfg=brown
hi LineNr ctermfg=3
hi Question ctermfg=green
hi StatusLine cterm=bold,reverse
hi StatusLineNC cterm=reverse
hi VertSplit cterm=reverse
hi Title ctermfg=5
hi Visual cterm=reverse
hi VisualNOS cterm=bold,underline
hi WarningMsg ctermfg=1
hi WildMenu ctermfg=0 ctermbg=3
hi Folded ctermfg=darkgrey ctermbg=NONE
hi FoldColumn ctermfg=darkgrey ctermbg=NONE
hi DiffAdd ctermbg=4
hi DiffChange ctermbg=5
hi DiffDelete cterm=bold ctermfg=4 ctermbg=6
hi DiffText cterm=bold ctermbg=1
hi Comment ctermfg=darkcyan
hi Constant ctermfg=brown
hi Special ctermfg=5
hi Identifier ctermfg=6
hi Statement ctermfg=3
hi PreProc ctermfg=5
hi Type ctermfg=2
hi Underlined cterm=underline ctermfg=5
hi Ignore cterm=bold ctermfg=7
hi Ignore ctermfg=darkgrey
hi Error cterm=bold ctermfg=7 ctermbg=1
:setf sql
:set number
:highlight LineNr Ctermfg=red
:set nowrap
"vim: sw=4
可以添加任意语法高亮显示。在我的
.vimrc
中,我有一个将尾部空白标记为红色:
highlight ExtraWhitespace ctermbg=1 guibg=red
match ExtraWhitespace /\s\+$/
在您的情况下,您可以:
highlight StackOverflow ctermfg=DarkGreen
match StackOverflow /Panel\|Access Validation/
然后,您只需设置运行BufWinLeave
、BufWinLeave
、InsertEnter
和InsertLeave
的match
命令的autocmds:
autocmd BufWinEnter * match StackOverflow /Panel\|Access Validation/
autocmd BufWinLeave * match StackOverflow /Panel\|Access Validation/
autocmd InsertEnter * match StackOverflow /Panel\|Access Validation/
autocmd InsertLeave * match StackOverflow /Panel\|Access Validation/
当然,如果您只想将其应用于特定类型的文件,您可以进行更细粒度的操作。我所需要做的就是复制
高亮显示StackOverflow ctermfg=DarkGreen
和匹配StackOverflow/Panel\|访问验证/
这两行并将其粘贴到代码底部。谢谢