GNU EmacsКалендарь + ежедневник в GNU EMACS

В этой серии постов хотелось бы рассказать уважаемому сообществу о некоторых возможностях GNU Emacs, естественно не о всех, поскольку одному богу известно до какой степени emacs расширяем)). В этом посте рассказ будет о том как сделать из emacs'a простой ежедневник.

Для того что бы войти в календарь в GNU Emacs, наберите M-x calendar (M в emacs — Alt), то есть вам нужно будет в минибуфере Emacs'a, с зажатым Alt нажать x и после этого набрать calendar. После произведенных действий Emacs долэен отобразить календарь на три месяца, отцентрированный на текущем месяце, а точка будет находиться на текущей дате. Вы должны увидить примерно следующие:



При прокрутке 3 текущих месяцев, Emacs отцентрированно покажет следующие 3 месяца.
Так же Emacs позволяет перемещаться по логическим еденицам календаря (день, неделя, месяц...)

*C-f Перемещает на день вперед
*C-b Перемещает на день назад
*C-n Перемещает на неделю вперед
*C-p Перемещает на неделю назад
*C-a Переход к началу недели (calendar-beginning-of-week).
*C-e Переход к концу недели (calendar-end-of-week).
*M-a Переход к началу месяца (calendar-beginning-of-month).
*M-e Переход к концу месяца (calendar-end-of-month).
*M-< Переход к началу года (calendar-beginning-of-year).
*M-> Переход к концу года (calendar-end-of-year).
*M-} Перемещает на месяц вперед
*M-{ Перемещает на месяц назад
*C-x ] Перемещает на год вперед
*C-x [ Перемещает на год назад

Для того что бы воспользоваться такой возможностью GNU Emacs как дневник, для начала вы должны создать файл дневника. По умолчанию в качестве файла дневника Emacs использует файл ~/diary. Каждая запись в файле дневника описывает одно событие и состоит из одной или нескольких строк. Запись всегда начинается со спецификации даты с левого края. Остальная часть записи — это просто текст, описывающий событие. Если запись содержит более одной строки, то строки после первой должны начинаться с отступа, как указание на то, что они продолжают предыдущее вхождение. Строки, которые не начинаются с правильной даты и не продолжают предыдущее вхождение, игнорируются. Вы можете редактировать записи дневника в том виде, как они появляются в окне, но важно помнить, что этот показанный буфер содержит полный файл дневника, но некоторые его части скрыты из вида. Это означает в частности, что команда может поместить точку в таком месте, которое кажется концом строки, но на самом деле это середина какой-то скрытой строки. С помощью следующих команд можно добавить записи в ваш дневник:

*i d Добавляет в дневник запись для выбранной даты
*i w Добавляет в дневник запись для выбранного дня недели
*i m Добавляет в дневник запись для выбранного дня месяца
*i y Добавляет в дневник запись для выбранного дня года

Вы можете создать в дневнике запись для конкретной даты, выбрав эту дату в окне календаря и выполнив команду i d.

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

Чтобы включить напоминание о назначенных событиях, вы должны задействовать средство Emacs для показа времени: M-x display-time. Вы также должны добавить к ловушке diary-hook функцию appt-make-list следующим образом:
Добавьте в ваш файл /.emacs:


(display-time)
(add-hook 'diary-hook 'appt-make-list)
(diary 0)


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

p.s. Надеюсь вы нашли в моем посте что — то полезное для себя и вам было интересно.
  • +5
  • sterh
  • 06 декабря 2009, 14:37

Комментарии (2)

Напоминает вызов cal из консоли, чтобы посмотреть календарь. Я такое наблюдал, но все-таки это рассчитано на людей, принципиально не использующих DE (Desktop Environment).
>но все-таки это рассчитано на людей, принципиально не использующих DE
Либо тайловые DE, у меня на одной из машин стоит dwm(dynamic window manager), в этом случае emacs'calendar давольно удобная вещь.
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.