LINUX.ORG.RU

emacs calendar


0

0

В емаксовом календаре (M-x calendar) можно выделять даты с событиями командой m красным. Если не хочется, чтобы событие подсвечивало дату, то надо перед этим событием в diary поставить &. Обычно это делается для рядовых событий вроде записи к дантисту. Красный оставляется для всяких дней рождений и особых дней.

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

В emacs wiki не нашел ничего. Есть что-то не столько далекое в теме: как отмечать выходные как праздники (малиновым). Но решение не универсальное. Но моя задача, очевидно, более серьезная (и более полезная, мне кажется).

★★★

Простое решение которое приходит на ум это менять `diary-entry-marker' в
самом diary sexpе сайд эффектом, а после подкраски восстанавливать .. 
что то типа

(defadvice mark-visible-calendar-date (after diary-face-recoverer activate)
  "Recover `diary-entry-marker' in case it changed in diary sexp."
  (setq diary-entry-marker 'diary-face))

---- diary ----
%%(progn (setq diary-entry-marker 'my-grief-face)
         (diary-date 6 22 t)) WWII start, day of grief.
---- diary ends here ----

Кстати сказать догадайся чья это байдятина с подкраской выходных :)

lg ★★
()
Ответ на: комментарий от lg

>Кстати сказать догадайся чья это байдятина с подкраской выходных :)

Так это твоя? Ты не поверишь, я на тебя и подумал. Из-за столь уверенного мнения, что все должны использовать понедельник как первый день календаря (я так не делаю, кстати). :)) Решил, что это какой-то немец, сначала. А потом думаю, нет, стиль английского очень напоминает мне Женю, тем более желание подсветить выходные - это из русских календарей. :)))

И кажется, я был прав ;) Круто.

Мне не очень нравится приведенное решение. Может просто содрать код, который рабоает с & прямо из cakendar.el. Если руки дойдут, то напишу потом в wiki.

atoku ★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.