vim - 有没有办法确定一个突出显示是否已经在 Vim 中定义?

标签 vim colors syntax-highlighting

对于文件类型插件,我想定义并使用默认的自定义突出显示名称,例如:

hi CsvColumn guifg=black guibg=NavajoWhite ctermfg=black ctermbg=yellow

但是,我希望允许用户定义自己的优先于默认值,因此可以这样做:

if <somehow or other check if 'CsvColumn' has NOT been defined>
    hi CsvColumn guifg=black guibg=NavajoWhite ctermfg=black ctermbg=yellow
fi

有办法吗?

因为这是在文件类型插件中,每次加载或读取缓冲区时它都会执行一次,所以很可能它会在用户的 '.vimrc' 被获取后被获取,所以用户的任何定义如果我不进行检查,那里或颜色方案中的提供将被覆盖。

最佳答案

有一个函数可以做到这一点,叫做 hlexists({name}):

The result is a Number, which is non-zero if a highlight group called {name} exists. This is when the group has been defined in some way. Not necessarily when highlighting has been defined for it, it may also have been used for a syntax item.

所以你的代码是:

if hlexists('CsvColumn')
    hi ...
endif

关于vim - 有没有办法确定一个突出显示是否已经在 Vim 中定义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3539031/

相关文章:

c# - 如何将十六进制颜色转换为 RGB 颜色(24 位)

c++ - 我可以在 Visual C++ 2010 中使用不同颜色的注释吗?

clojure - 自动运行多个 vim 命令和击键

windows - 如何在 vim 中映射 Shift-Tab? (Cygwin, Windows cmd.exe)

android - 如何设置 View 的背景颜色

vim - 在Vim中,如果某行包含特定单词,如何以特定颜色显示该行文本?

syntax-highlighting - 纯文本的语法突出显示( Sublime Text )

regex - 如何在最后一次模式出现时/之后对齐?

python - 安装 jedi-vim 失败 : vim says wrongly that +python is not compiled

在 Canvas 上使用 getImageData 进行 JavaScript 颜色检测