假设我要使用以下颜色方案: https://github.com/NLKNguyen/papercolor-theme
我将PaperColor.vim文件复制到.vim / colors并制作了.vimrc:
syntax on
colorscheme PaperColor
background=light
现在,我想对haskell文件使用以下语法高亮显示:https://github.com/raichoo/haskell-vim/tree/master/syntax
有两个语法突出显示文件。我应该使用哪一个,并将其放在哪里?
谢谢!
我是否将其放在./vim/syntax中,并且vim会自动加载./vim/syntax文件夹中的所有文件?
似乎要自动加载haskell.vim。但是不会加载cabal.vim。想知道我打开.hs文件时是否只加载haskell.vim吗?我正在努力做到这一点。 vim可以一次加载多个语法文件吗?
答案 0 :(得分:1)
TL; DR :(基本上)一切正常。 colorchemes和语法脚本之间是有区别的。
Vim中的大多数文件类型(如python
)都带有定义突出显示组的语法(可通过:highlight python<C-d>
查看它们)。然后将这些特定的组(例如pythonFunction
)链接到一组默认组(:help highlight-groups
,例如Identifier
)。然后, colorscheme 为默认组提供前景/背景颜色和/或粗体和斜体格式的组合(分别用于终端,颜色终端和/或GVIM)。
突出显示组→默认组→颜色+样式
pythonFunction
→Identifier
→term=underline ctermfg=3 guifg=DarkCyan
因此,要选择一组适合您个人口味的精美匹配颜色,请选择一种配色方案。对您来说,这就是colorscheme PaperColor
。 请注意:在选择颜色之前,需要先设置background
,(并且您已经错过了:set
命令):
syntax on
set background=light
colorscheme PaperColor
语法脚本知道如何解析某种语法(对您来说: haskell 和 cabal ;激活的内容取决于文件类型检测 ,通常可以做正确的事,但是您也可以手动覆盖它(:setlocal syntax=cabal
);我认为前者是针对Haskell源代码的,而cabal是软件包的定义)。它们基本上可以识别某些语法元素,并将它们链接到通用的 highlight组(例如Statement
,String
,Comment
等)。现在,这些颜色的颜色(例如,粗绿色)由您选择的颜色方案决定。
如您所见,colorschemes和语法脚本各自具有不同的作用,并且可以一起发挥作用。前者是全局的个人选择,而后者是根据检测到的文件类型激活的,每个文件都不同。