Подсветка синтаксиса Vim для скрытия символов - PullRequest
7 голосов
/ 11 октября 2011

Я хотел бы реализовать файл синтаксиса для vim, который скрывает определенные символы в файле. В частности, я хочу написать улучшенную подсветку для чтения файлов Markdown, которая не отображает некоторые символы форматирования, предпочитая вместо этого указывать их неявно. Например, я хотел бы, чтобы такие вещи, как *bold*, отображались бы просто bold с жирным шрифтом или имели заголовки, такие как

My Header
=========

не показывают их подчеркивание, а просто появляются другим цветом. Мне пока не удалось найти никаких примеров файлов синтаксиса vim, которые бы скрывали определенные символы от отображения. Это то, что возможно в Vim? Если да, то как?

Ответы [ 2 ]

12 голосов
/ 12 октября 2011

Чтобы скрыть элементы синтаксиса - или только определенные символы - можно использовать аргументы скрытия или игнорирования. Смотри

:help hl-Ignore
:help syn-conceal

Для примера см. Файл синтаксиса "help.vim", который является частью crefvim . CRefVim - это C-справочное руководство, которое встроено в справочную систему Vim. Файл синтаксиса "help.vim" расширяет стандартную подсветку синтаксиса для файлов справки.

Пример. Символ «$» используется здесь для отображения текста курсивом:

example on how to use Ignore syntax argument, help.vim

Может быть, этот пример является хорошей отправной точкой для дальнейших исследований ...

Хаби

1 голос
/ 09 января 2012

Вы можете создать свой собственный синтаксический файл с соответствующей colortheme, используя "жирный шрифт", "курсив" и т.п. Это ничего не скрывает, так что ваш синтаксис должен работать с оригинальным текстом. Например, это может быть ваш синтаксис для заголовков

В вашем синтаксисе вам понадобится:

syn match Header '^\s*\u*\.\s.*$'  contains=ALL
hi link Header   ModeMsg

и в колортеме

hi ModeMsg gui=bold guifg=NONE guibg=NONE cterm=bold ctermfg=NONE ctermbg=NONE term=bold

тогда такой заголовок

1. This is my new header, being bold

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

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