2010-06-10 6 views
2

В двух словах, я хочу иметь разные лицо для некоторых типов файлов в Dired режима. Я не думаю, что это важно, но я использую Aquamacs.Как я могу выделить различные типы файлов в режиме Dired в Emacs?

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

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

^(.+)\.tex$ 

Я думаю, что моя структура и регулярное выражение не совсем правильно. Я не программист (хотя у меня есть интерес к нему), я использовал только Emacs в течение 2 недель или около того, поэтому любая помощь будет принята с благодарностью.

Мне нужна, по крайней мере, базовая структура того, что я должен сделать. Я понимаю, что могут быть уже созданы режимы, которые делают что-то похожее (например, Wdired и Dired-X), и я бы не стал жаловаться, если кто-то рассказал мне о них, но я действительно хочу, чтобы у меня был код elisp (либо уже написанный или что я могу работать), поскольку я планирую изучить немного elisp, чтобы иметь возможность писать свои собственные настройки, и это будет способ узнать.

Спасибо!

ответ

2

Поскольку вы хотите узнать, как это сделать, попробуйте проверить расширение dired+.el. Этот режим намного больше, чем вы хотите, но он добавляет новые лица. В частности, найдите переменную diredp-font-lock-keywords-1 и как она используется. Это должно заставить вас идти.

Другие SO вопросы, которые кажутся важными являются:

+0

Спасибо за это! Если вы это знаете, не могли бы вы также сказать, правильно ли выглядит мое регулярное выражение? – Vivi

+3

Хороший способ играть с регулярными выражениями - RE-Builder. Перейдите в буфер * scratch *, введите несколько символов и введите RET. Теперь вы можете выполнить «живое» соответствие регулярному выражению. Имейте в виду, что RE-Builder интерпретирует ваш ввод как строку. Это означает, что вам нужно будет ввести «\\\\», чтобы соответствовать одному «\» и «\\». для точки. При работе с регулярными выражениями в Emacs вы всегда должны знать, интерпретируются ли они как строки или напрямую. – lmichelbacher

+0

Ницца! спасибо, это было очень полезно :) – Vivi