vim - 自定义语法着色 vim

标签 vim syntax colors

在vim中,你可以调用一个主题,例如'colo:desert'并对某些未着色的语法进行着色,就像我想将“Access Validation”和“Panel”等词着色为绿色一样,Vim会让met做的事情那?

下面是我的沙漠主题,我用它来为我的语法着色

    " 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/

然后您只需设置自动命令,为 BufWinEnterBufWinLeaveInsertEnter 运行 match 命令,和InsertLeave:

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/

如果您只想将其应用于特定类型的文件,您当然可以做得更细粒度。

关于vim - 自定义语法着色 vim,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39841314/

相关文章:

regex - Vim 正则表达式查找丢失的 JSON 元素

syntax - 是否有一个标准可以轻松显示和隐藏内容?

java - 我的 java 代码有一个明显的错误。为什么它会编译和运行?

android - 使用 getPixel() 方法提取的巨大负值

html - 滚动条着色中的 CSS 问题

jquery - 如何阻止 jquery 覆盖 CSS 颜色?

vim - 是否可以在 vim 的特定行上打开一个新选项卡?

vim - 如何永久突出显示vim中的搜索词?

python - 在 vim 中获取 python 支持

python - 在 python 中为 "yield from"语句中的对象应用函数