Подсветка Синтаксиса Midnight Commander: Добавление Собственного Синтаксиса

Эксим всем хорош, но его конфигурация не похожа ни на что другое и подсветка в нем скучно-серая (см.

ниже) и чтобы исправить эту досадную ошибку, было решено покопаться в недрах Google для подсветки синтаксиса командира Midnight. Краткое описание поиска представлено ниже.

ДО:

Подсветка синтаксиса Midnight Commander: добавление собственного синтаксиса



Синтаксис MC Теория основных моментов

По словам человека, редактор MS (man mcedit) ищет в файле блики ~/.

mc/cedit/Синтаксис или если файлов нет то в $PREFIX/share/mc/syntax/Syntax. Внимание .

Эти файлы просматриваются именно в этом порядке и ищутся до тех пор, пока не будет найдено первое совпадение.

Поэтому, если вы напишите файл Syntax в своем домашнем каталоге, будут определяться ТОЛЬКО описанные в нем синтаксисы (это касается версии MS 4.7.5, возможно, в более поздних версиях все изменилось).



Быстрый путь

Найден быстрый (но ОЧЕНЬ неточный) метод Здесь .

Он просто заменяет синтаксис неизвестного типа (файл /usr/local/share/mc/syntax/unknown.syntax) на sh.syntax) Но этот метод некачественный и неспортивный.

Поэтому мы пойдём другим путём.



Синтаксис синтаксиса

Для начала мы отправимся в $PREFIX/share/mc/синтаксис/Синтаксис и в самом начале поставим ссылку на разрабатываемый нами файл:

file configure exim\sconfiguration include exim.syntax

Это означает: все файлы, которые начинаются с конфигурации и расположены в папке Exim, выделяются синтаксисом из файла Exim.syntax. Таким образом, все резервные копии (configure_28_11_2010, configure.orig, configure.default и т. д. также будут выделены).



Контексты
Синтаксис может иметь один или несколько контекстов.

Контекст - все, что заключено между определенными служебными символами\словами (разделителями).

Пример:

context " " green spellcheck

— всё между ног отображается зелёным цветом (в нашем случае линия)

context exclusive # \n brown

- все между # и конец строки - коричневый (комментарий) Обязательный контекст по умолчанию используется для выделения чего-то, чего нет ни в каком контексте.



Ключевые слова
В любом контексте служебные слова приводятся в следующем виде:

keyword [whole|wholeright|wholeleft] [linestart] string foreground [background]

Коротко о параметрах:
  • целое - только целые слова (иначе будут выделены даже части большего слова)
  • целиком – от строки и вправо до конца слова
  • Wholeleft — от строки и слева до конца слова
  • linestart - строка должна идти в начале строки
Также было бы неплохо определить, какие символы НЕ обозначают конец слова.

Это делается с помощью команды оптовые персонажи :

wholechars abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_01234567890.-



exim.Синтаксис
Собственно, мы начнем с контекста по умолчанию:

context default keyword = white keyword : yellow keyword ! red keyword # brown keyword \/\/ brown keyword ${ green keyword } green keyword whole domainlist brightcyan keyword whole begin brightcyan keyword whole acl brightcyan keyword whole warn cyan keyword whole accept cyan keyword whole reject cyan keyword whole drop cyan keyword whole deny cyan .



- здесь мы определяем целые слова и их цвет Дальше:

keyword wholeright smtp_* brightcyan keyword wholeright rfc1413_* brightcyan keyword wholeright recipients_max* brightcyan keyword wholeright system_filter* brightcyan keyword wholeright maildir_* brightcyan keyword wholeright message_* brightcyan keyword wholeright quota_warn_* brightcyan keyword wholeright server_* brightcyan .



— определяем целые семейства служебных слов (все, что начинается с и до конца слова И перейдем к другим контекстам:

context " " green spellcheck context exclusive # \n brown

- строчный и однострочный комментарий

context exclusive = \n magenta keyword \\\n red keyword \\ red keyword \/\/ brown keyword "*" green keyword '*' green

— Контекст назначения параметров

domainlist relay_to_domains = local_domains

Также отвечает за то, чтобы строки в этом контексте отображались зелеными: ключевое слово «*» зеленое, ключевое слово «*» зеленое , а разрывы служебных строк выделены красным.



выводы
ПОСЛЕ этих манипуляций (без перегрузки МС) наш конфиг стал выглядеть более привлекательно:

Подсветка синтаксиса Midnight Commander: добавление собственного синтаксиса

P.S. Основные источники: чувак, мкедит А также /usr/local/share/mc/syntax/Syntax Сам файл синтаксиса Exim.Syntax можно получить Здесь П.

П.

С.

Если вдруг кто-то найдет готовый файл синтаксиса, то пожалуйста разместите его ссылку где-нибудь здесь.

Теги: #*nix #exim #midnight Commander #midnight Commander #синтаксис #подсветка #подсветка синтаксиса

Вместе с данным постом часто просматривают: