vim - 如何在 vim 中使用不同的配色方案和语法高亮显示?
问题描述
假设我想使用这个配色方案: 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 可以一次加载多个语法文件吗?
解决方案
TL;DR:一切(大部分)都很好。颜色方案和语法脚本之间存在差异。
Vim 中的大多数文件类型(如python
)都带有定义高亮组的语法(通过 参见它们:highlight python<C-d>
)。然后将这些特定组(例如pythonFunction
)链接到一组默认组(:help highlight-groups
例如Identifier
)。然后,颜色方案为默认组提供前景色/背景色和/或粗体和斜体等格式的组合(分别用于终端、颜色终端和/或 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 是一个包定义)。它们基本上识别某些语法元素,并将它们链接到通用突出显示组(如Statement
、String
、Comment
等)。现在如何着色(例如粗体绿色)由您选择的配色方案决定。
如您所见,颜色方案和语法脚本各有不同的作用,并一起发挥作用。虽然前者是全球个人选择,但后者是根据检测到的文件类型激活的,每个缓冲区都不同。
推荐阅读
- regex - BASH 查找名称中带有 ñ 的文件
- php - 在对象类中抛出异常并在外面捕获它?
- ssis - SSIS/WinSCP - 在 prod 上升级 WinSCP 而不会破坏 SSIS 包
- css - 自动换行时单词重叠
- opencart - opencart 管理面板未正确加载
- swift - 在 RxBluetoothKit 中链接多个命令
- python - 使用 Beautiful Soup 通过网站的不同页面循环抓取数据
- selenium - 如何在多个 DateTime Pickers 显示相同 XPATH 的情况下唯一标识日期和时间选择器?
- python - 在数字字符串的随机 len 之后删除 0 的随机 len
- apache-spark - 如何在火花中抑制 ContextHandler 的日志