Midnight commander подсветка синтаксиса

Подсветка синтаксиса в mcedit и bash

Jan 2, 2017 18:07 · 202 words · 1 minute read console

«Как включить подсветку синтаксиса в mcedit и bash?» — ответ на этот несложный вопрос настолько прост, что я сам постоянно забываю как это делается… Давайте разберемся!

Итак, сначала разберемся с mcedit . Чтобы включить подсветку синтаксиса в этом популярном редакторе необходимо открыть любой имеющийся файл в режиме редактирования (начать F4 или в консоли выполнить mcedit somefile.inc ) и нажать комбинацию клавиш Ctrl+S.

Это срабатывает в 99% случаев, но если подсветка синтаксиса в mcedit не включилась, то нужно немного подправить конфигурационный файл /usr/share/mc/syntax/Syntax :

Находим строку include unknown.syntax и изменяем ее на include sh.syntax и после проделанных действий появится подсветка синтаксиса.

Чтобы включить подсветку синтаксиса bash для всех пользователей в системе следует в конфигурационном файле /etc/skel/.bashrc найти и раскомментировать строку force_color_prompt=yes , после чего перелогиниться в системе.

Также можно изменить стандартные цвета по своему вкусу, делается это также в конфиге /etc/skel/.bashrc в строке PS1=’$\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ ‘ .

Вот список цветов, которые можно применять для подсветки синтаксиса в bash :

Индивидуальные настройки подсветки синтаксиса для каждого пользователя можно настраивать в конфигурационном файле /home/$USER/.bashrc

Еще один пример «раскраски» консоли в Linux, а также изменение приветствия мы рассматривали ранее.

Источник

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

Всем хорош exim но его конфигурация не похожа ни на что соответственно и подсветка в нем скучно-серая (см.ниже)и чтобы исправить эту досадную ошибку решено было покопаться в недрах гугла на предмет Midnight commander syntax highlight.
Краткий конспект поисков представлен ниже

ДО:

Теория MC syntax Highlight

/.mc/cedit/Syntax
или если там нет файлов тогда в $PREFIX/share/mc/syntax/Syntax.
Внимание. Эти файлы просматриваются именно в такой последовательности и ищутся до первого совпадения. Поэтому если вы напишите файл Syntax в домашней директории то будут определяться ТОЛЬКО синтаксисы описанные в нем (это касается версии МС 4.7.5, возможно все изменилось в более поздних версиях).

Быстрый способ

Быстрый (но ОЧЕНЬ не точный) способ был найден здесь. В нем просто заменяется синтаксис неизвестного типа (файл /usr/local/share/mc/syntax/unknown.syntax) на sh.syntax)
Но этот способ не качественный и неспортивный. Поэтому мы пойдем другим путём.

Синтаксис Syntax-а

Контексты

В синтаксисе может быть один или несколько контекстов. Контекст — все что заключено между определенными служебными символами\словами (delimiters) пример:
context » » green
spellcheck

— все что между лапками отображается зеленым (в нашем случае строка)
context exclusive # \n brown


— все что между # и концом строки — коричневый (комментарий)

Обязательный контекст дефолтный (context default) используется для подсветки того что не находится ни в одном контексте.

Keywords
exim.Syntax

Собственно начнем мы с дефолтного контекста:
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
Также отвечает за то чтобы строки в этом контексте отображались зеленым:
keyword «*» green, keyword ‘*’ green, а служебные символы переноса строки — красным.

Выводы

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

Источник

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

Всем хорош exim но его конфигурация не похожа ни на что соответственно и подсветка в нем скучно-серая (см.ниже)и чтобы исправить эту досадную ошибку решено было покопаться в недрах гугла на предмет Midnight commander syntax highlight.
Краткий конспект поисков представлен ниже

Читайте так же:  Erisson 32hle17t2 уменьшить ток подсветки

ДО:

Теория MC syntax Highlight

/.mc/cedit/Syntax
или если там нет файлов тогда в $PREFIX/share/mc/syntax/Syntax.
Внимание. Эти файлы просматриваются именно в такой последовательности и ищутся до первого совпадения. Поэтому если вы напишите файл Syntax в домашней директории то будут определяться ТОЛЬКО синтаксисы описанные в нем (это касается версии МС 4.7.5, возможно все изменилось в более поздних версиях).

Быстрый способ

Быстрый (но ОЧЕНЬ не точный) способ был найден здесь. В нем просто заменяется синтаксис неизвестного типа (файл /usr/local/share/mc/syntax/unknown.syntax) на sh.syntax)
Но этот способ не качественный и неспортивный. Поэтому мы пойдем другим путём.

Синтаксис Syntax-а

Контексты

В синтаксисе может быть один или несколько контекстов. Контекст — все что заключено между определенными служебными символами\словами (delimiters) пример:
context » » green
spellcheck

— все что между лапками отображается зеленым (в нашем случае строка)
context exclusive # \n brown


— все что между # и концом строки — коричневый (комментарий)

Обязательный контекст дефолтный (context default) используется для подсветки того что не находится ни в одном контексте.

Keywords
exim.Syntax

Собственно начнем мы с дефолтного контекста:
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
Также отвечает за то чтобы строки в этом контексте отображались зеленым:
keyword «*» green, keyword ‘*’ green, а служебные символы переноса строки — красным.

Выводы

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

Источник

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

Всем хорош exim но его конфигурация не похожа ни на что соответственно и подсветка в нем скучно-серая (см.ниже)и чтобы исправить эту досадную ошибку решено было покопаться в недрах гугла на предмет Midnight commander syntax highlight.
Краткий конспект поисков представлен ниже

ДО:

Теория MC syntax Highlight

/.mc/cedit/Syntax
или если там нет файлов тогда в $PREFIX/share/mc/syntax/Syntax.
Внимание. Эти файлы просматриваются именно в такой последовательности и ищутся до первого совпадения. Поэтому если вы напишите файл Syntax в домашней директории то будут определяться ТОЛЬКО синтаксисы описанные в нем (это касается версии МС 4.7.5, возможно все изменилось в более поздних версиях).

Быстрый способ

Быстрый (но ОЧЕНЬ не точный) способ был найден здесь. В нем просто заменяется синтаксис неизвестного типа (файл /usr/local/share/mc/syntax/unknown.syntax) на sh.syntax)
Но этот способ не качественный и неспортивный. Поэтому мы пойдем другим путём.

Синтаксис Syntax-а

Контексты

В синтаксисе может быть один или несколько контекстов. Контекст — все что заключено между определенными служебными символами\словами (delimiters) пример:
context » » green
spellcheck

— все что между лапками отображается зеленым (в нашем случае строка)
context exclusive # \n brown


— все что между # и концом строки — коричневый (комментарий)

Обязательный контекст дефолтный (context default) используется для подсветки того что не находится ни в одном контексте.

Keywords
exim.Syntax

Собственно начнем мы с дефолтного контекста:
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

Читайте так же:  Как заменить лампочку подсветки номера ховер н5

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
Также отвечает за то чтобы строки в этом контексте отображались зеленым:
keyword «*» green, keyword ‘*’ green, а служебные символы переноса строки — красным.

Выводы

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

Источник

Подсветка синтаксиса cooledit

Внимание! Частично эта информация устарела!

Начиная с версии 3.6.0, cooledit умеет подсветку синтаксиса. Это означает, что ключевые слова и контексты (такие как комментарии, строковые константы и так далее) будут подсвечены разными цветами. Этот раздел объясняет формат файла

/.cedit/syntax перечитывается при каждом открытии редактора. В файле содержатся правила подсвечивания, каждое из которых записано с новой строки, и которые определяют, какие из ключевых слов каким цветом подсвечиваются. Также файл разделён на секции, каждая из которых, начинается со строки с командой file и регулярным выражением, следующим за ней. Регулярное выражение определяет имя файла, к которому будет применён набор правил. Далее следует описание для отображения в заголовке редактора, объясняющее тип файла пользователю. Третий параметр (необязательный) — регулярное выражение, соответствующее первой строке текста из файла. Если любое из регулярных выражений по имени или по первой строке совпадёт, то правила будут загружены.

Секция оканчивается началом новой секции. Каждая секция разделена на контексты, а каждый контекст содержит правила. Контекст (context) — область текста, которой принадлежат особенный набор правил. Например, область комментариев в стиле C (например между /* и */) имеет свой собственный цвет. Он является контекстом, несмотря на то, что он не имеет других правил внутри себя, так как, возможно, мы не хотим ничего подсвечивать внутри C-комментария.

Простейшая секция для языка C может выглядеть так:

Каждый контекст начинается со строки вида:

Единственное исключение составляет первый контекст. Он должен начинаться со строки вида:

иначе cooledit возвратит ошибку.

Параметр linestart определяет, что начало ограничителя (delim) должен совпадать с началом строки.

Параметр whole определяет, что ограничитель (delim) должен быть целым словом. Набор символов, из которых может состоять слово, могут быть изменены в любой точке файла с помощью команды wholechars. Команда wholechars в самом начале устанавливает набор в состояние по умолчанию и поэтому может быть опущена. Для того, чтобы определить, что слово должно быть целым только слева, можно использовать параметр wholeleft и, соответственно, справа — wholeright. Наборы символов для левого и правого направлений могут быть установлены отдельно с помощью следующей команды:

Параметр exclusive определяет подсветку между ограничителями (delim), исключая при этом сами ограничители (delim).

Контекст (context) или ключевое слово (keyword) обрабатываются так, что могут включать символы табуляции и пробелы. Для этого используются последовательности \t и \s. Новая строка и \ определяются последовательностями \n и
соответственно. Также, последовательность \* должна быть использована для определения символа *. Сам по себе символ * является метасимволом (wildcard), который определён как любое количество символов, большее и равное нулю. Например,

подсвечивает все односимвольные константы C зелёным цветом. Также можно использовать

для расцвечивания строковых констант, исключая многострочные константы. Метасимволы могут использоваться совместно с контекстами в позиции первого или последнего символа.

Важно отметить значение строки:

Эта строка определяет ключевое слово (keyword), содержащее символ \ и символ новой строки (\n). Так как ключевые слова имеют более высокий приоритет, чем разделители контестов, это ключевое слово предотвращает завершение контекста в конце строки, если строка оканчивается символом \, позволяя, таким образом, применять расцветку к дерективам С-препроцессора, расположенным на нескольких строках.

Цвета пронумерованы от 0 до 26.

Также вы можете использовать именованные цвета, определённые в /usr/lib/X11/rgb.txt, однако лишь однословные их определения. Лучше использовать численные представления, чтобы ограничить использование цветовой палитры.

Комментарии определяются символом # в начале строки.

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

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

Оригинал (английский): ​ SYNTAX HIGHLIGHTING (in cooledit) Перевод: © styx, shkoda.

Источник

Оцените статью
Охраны в доме нет
Adblock
detector