TL; DR: Все (в основном) хорошо.Существует разница между цветовыми схемами и синтаксическими сценариями.
Большинство типов файлов (например, python
) в Vim поставляются с синтаксисом, определяющим группы подсветки (см. Их через :highlight python<C-d>
),Эти конкретные группы (например, pythonFunction
) затем связаны с набором групп по умолчанию (:help highlight-groups
, например, Identifier
).A 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 - это определение пакета).Они в основном распознают определенные элементы синтаксиса и связывают их с общими группами подсветки (например, Statement
, String
, Comment
и т. Д.).Теперь то, как они затем раскрашиваются (например, жирным зеленым), определяется выбранной вами схемой цветов.
Как вы видите, схемы цветов и синтаксические скрипты имеют свою особую роль и играют вместе.Хотя первый вариант является глобальным личным выбором, последний активируется в зависимости от обнаруженного типа файла, который отличается для каждого буфера.