![]() |
Модераторы: ZeeLax, powerfox |
![]() ![]() ![]() |
|
comcon1 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 838 Регистрация: 11.6.2005 Где: Москва ДАС-МГУ Репутация: 2 Всего: 17 |
Подскажите общую канву для следующей задачи
у меня в файле
надо чтобы циферки подсвечивались в зависимости от того в каком они блоке. Болванка для синтакс-файла у меня уже есть. Всякие ключевые слова подсвечивает. Блок [ bonds ] должен подсвечивать цифры так, а блок [ angles ] иначе. Спасибо, доки я все равно копать буду, хотелось бы начать с чего-то. |
|||
|
||||
bilbobagginz |
|
|||
![]() Naughtius Maximus ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8813 Регистрация: 2.3.2004 Где: Israel Репутация: 28 Всего: 317 |
сразу замечу, что мне пока не приходилось создавать свои подсветки для vim.
но, в подсветке таблиц cron есть там одно такое дело, посмотри как оно реализовано и ... копи-пейст. удачи. -------------------- Я ещё не демон. Я только учусь. |
|||
|
||||
comcon1 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 838 Регистрация: 11.6.2005 Где: Москва ДАС-МГУ Репутация: 2 Всего: 17 |
спасибо - попробую. Код запощу с комментариями.
|
|||
|
||||
comcon1 |
|
||||||||||||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 838 Регистрация: 11.6.2005 Где: Москва ДАС-МГУ Репутация: 2 Всего: 17 |
Итак. привожу код Syntax-файла с комментариями.
общее место всех вим-файлов. Далее определяем общие группы. syntax match имя_группы 'регулярное_выражение'
Определяем константу, которая подсвечивается, только внутри определенных групп (contained)
Теперь устанавливаем правила для региона [ bonds ] она начинается словом [ bonds ] и заканчивается [ другое_слово ]
Регион содержит общие группы (itpGroup, itpComment, itpPreprocessor) и собственную уникальную группу itpBond keepend нужен, чтобы раскраска вне группы не распространялась внутри группы должны быть столбики цифр вида int int STR int int int STR или int int int Float Float Float .. вот их и пропишем. Это определение строчки, начинающейся с циферок:
contained означает, что эта группа раскрашивается только внутри группы itpBonds Циферки раскрасим по-разному. nextgroup означает, что за этой группой должна следовать другая группа и никак иначе skipwhite пропускает пробелы между последовательными группами
группы определены, теперь расскрасим их командой highlight или сокращенно hi:
раскраска под ошибку группы itpBonds появится только если пользователь ввел внутри группы лабуду, поскольку все неошибочные группы получат свои специальные цвета.
Вот так. Получилось следующее: [ bonds ] ; ai aj funct ; C-N 1 5 gb_EtA_CN_2 ; N-H 1 2 gb_EtA_NH_2 1 3 gb_EtA_NH_2 1 4 gb_EtA_NH_2 ; Ca-H 5 6 gb_EtA_CaH_2 1 2 4 124.4 157.0e+7 safesef 3 543 [ angles ] 1 2 3 3 540 1 2 4 2 124 Это сообщение отредактировал(а) comcon1 - 12.2.2007, 12:55 |
||||||||||||||||
|
|||||||||||||||||
![]() ![]() ![]() |
Правила форума "Linux/UNIX: Oбщие вопросы" | |
|
В этом форуме предпочтительны вопросы на следующие темы:
За интересные статьи, находки, решения, программы и просто реальную помощь будут ставиться + в репу). В данный момент этот раздел модерируют nerezus, nickless, powerfox, pythonwin, Imple и ZeeLax. Если вы хотите помочь нам, пишите в ПМ и мы обсудим. Спасибо. И use UNIX or die; С уважением, nerezus, nickless, powerfox, pythonwin, Imple, ZeeLax. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Программное обеспечение под *NIX системы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |