bars писал: ↑21.05.2020 09:23
Все круглые скобки {}
Вообще-то, это фигурные скобки, не круглые.
bars писал: ↑21.05.2020 09:23
подсвечиваются синим
Подсвечиваются только сами скобки или содержимое тоже?
bars писал: ↑21.05.2020 09:23
Не могу понять как создать исключение.
Я редактором nano не пользуюсь, но судя по man-странице, похоже, что никак.
Объясняю, почему.
bars писал: ↑21.05.2020 09:23
color brightblue "(events|server[[:space:]]\{|http[[:space:]]\{|location[[:space:]].*\{$|upstream|
[{}])"
Выделенный полужирным участок отвечает за окраску квадратных и фигурных скобок в яркий синий.
Ваше выражение
bars писал: ↑21.05.2020 09:23
Код: Выделить всё
color red "^if[[:space:]]\((.+)\)[[:space:]]\{"
окрашивает инструкцию if до первой скобки.
Вариант
Код: Выделить всё
color red "^if[[:space:]]\((.+)\)[[:space:]]\{\}"
окрасит if с двумя скобками, но только если блок пустой.
Вариант
Код: Выделить всё
color red "^if[[:space:]]\((.+)\)[[:space:]]\{(.+)\}"
окрасит весь блок вообще, включая содержимое скобок.
Чтобы получить вариант, который Вам нужен,
требуется часть строки окрасить красным, часть "не красным".
А это невозможно в одной инструкции.
Здесь нужно что-то вроде вложенных инструкций типа
color red (... color blue(...) ...)
а таких вроде не предусмотрено.
В man-странице упоминается конструкция вида
которая позволяет окрашивать текст между двумя регекспами "от и до".
Но это всё равно не то, что нужно.
Я не знаю, существуют ли регекспы, позволяющие выдергивать строку частями (начало строки выдернуть, середину пропустить, конец опять выдернуть).