Как использовать разные цвета и подсветку синтаксиса в vim? - PullRequest
0 голосов
/ 13 февраля 2019

Предположим, я хочу использовать эту цветовую схему: 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/ Синтаксис папка?

Похоже, что автоматически загружает haskell.vim.Но не загружает cabal.vim.Хотите знать, загружает ли он только haskell.vim при открытии файлов .hs?Я пытаюсь сделать так.Может ли vim загружать несколько файлов синтаксиса одновременно?

1 Ответ

0 голосов
/ 13 февраля 2019

TL; DR: Все (в основном) хорошо.Существует разница между цветовыми схемами и синтаксическими сценариями.

Большинство типов файлов (например, python) в Vim поставляются с синтаксисом, определяющим группы подсветки (см. Их через :highlight python<C-d>),Эти конкретные группы (например, pythonFunction) затем связаны с набором групп по умолчанию (:help highlight-groups, например, Identifier).A colorscheme затем предоставляет комбинации цвета переднего плана / фона и / или форматирования, такие как жирный и курсив (отдельно для терминалов, цветных терминалов и / или GVIM) для групп по умолчанию.

группа выделения→ группа по умолчанию → цвет + стиль
pythonFunctionIdentifierterm=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 и т. Д.).Теперь то, как они затем раскрашиваются (например, жирным зеленым), определяется выбранной вами схемой цветов.

Как вы видите, схемы цветов и синтаксические скрипты имеют свою особую роль и играют вместе.Хотя первый вариант является глобальным личным выбором, последний активируется в зависимости от обнаруженного типа файла, который отличается для каждого буфера.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...