Календарь и дневник – ЧАСТЬ 1

Emacs может работать как настольный календарь с ежедневником для планируемых и прошедших событий. Чтобы войти в календарь, наберите M-x calendar;  это покажет календарь на три месяца, отцентрированный  на текущем месяце, а точка будет находиться на текущей дате.  С числовым аргументом, как в C-u M-x calendar,  эта команда запрашивает у вас месяц и год, которые должны оказаться в центре трехмесячного календаря. Календарь  использует свой собственный буфер c основным режимом Calendar.

Mouse-2 в календаре выводит меню операций для даты; C-Mouse-3 выводит меню часто используемых средств календаря, которые не зависят от конкретной даты. Чтобы выйти из календаря, введите q.  См.  раздел “Calendar” в The Emacs Lisp Reference Manual, для получения информации о настройке календаря и дневника.

29.1  Перемещение по календарю

Режим Calendar позволяет вам перемещаться по календарю через логические промежутки  времени, такие как  дни, недели,  месяцы и годы.   Если вы переместитесь за те три месяца, которые показываются изначально, календарь автоматически “прокручивается” на столько, сколько нужно, чтобы выбранная дата стала видимой.  Перемещение  к дате позволяет вам просмотреть приходящиеся на нее праздники или записи в дневнике или преобразовать  ее в другие календарные системы; перемещение на большие интервалы времени также полезно просто для прокрутки календаря.

29.1.1  Перемещение по обычным календарным единицам

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

C-f              Перемещает на день вперед (calendar-forward-day).

C-b            Перемещает на день назад (calendar-backward-day).

C-n            Перемещает на неделю вперед (calendar-forward-week). C-p            Перемещает на неделю назад (calendar-backward-week). M-}             Перемещает на месяц вперед (calendar-forward-month). M-{             Перемещает на месяц назад (calendar-backward-month). C-x ]     Перемещает на год вперед (calendar-forward-year).

C-x [     Перемещает на год назад (calendar-backward-year).

Команды для перемещения по дням и неделям — это естественные аналоги обычных команд Emacs для перемещения по знакам или строкам. Так же, как C-n обычно перемещает к тому же столбцу в следующей строке, в режиме Calendar она перемещает к тому же дню следующей недели. А C-p перемещает к тому же дню предыдущей недели.

Курcорные стрелки эквивалентны C-f, C-b, C-n и C-p, как и в других режимах.

Команды для перемещения по месяцам  и годам  работают так  же,  как  команды для недель, но переносят на большие расстояния. Команды для месяцев M-} и M-{ перемещают вперед или назад на целый месяц. Команды для лет C-x ] и C-x [ перемещают вперед или назад на целый год.

Простейший  способ запомнить эти команды — рассматривать месяцы и годы как анало-

ги абзацев и страниц, соответственно. Но сами команды не вполне аналогичны. Обычные

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

Все эти команды принимают числовой аргумент в качестве счетчика повторов.  Для удобства, в режиме Calendar цифры и знак минус задают числовой аргумент даже без модификатора Meta. Например, 100 C-f перемещает точку на 100 дней вперед от ее текущей позиции.

29.1.2  Начало  или конец недели, месяца или года

Неделя (или месяц, или год) — это не просто некоторое количество дней; мы полагаем, что  недели  (месяцы, года)  начинаются с определенных  дат.   Поэтому режим Calendar предоставляет команды для перехода к началу или концу недели, месяца или года:

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).

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

По умолчанию недели начинаются с воскресенья. Чтобы сделать так,  чтобы они на-

чинались с понедельника,  установите  переменную calendar-week-start-day в значение

1.

29.1.3  Указанные даты

Режим Calendar предоставляет команды для перехода к конкретной дате, которую мож-

но задать многими способами.

g d             Перемещает точку к указанной дате (calendar-goto-date).

o                Центрирует календарь вокруг указанного месяца (calendar-other-month).

.         Перемещает к сегодняшней дате (calendar-goto-today).

g d (calendar-goto-date) запрашивает год, месяц и день месяца, а затем перемещает к этой дате.  Поскольку календарь включает все даты от начала нашей эры, вы должны вводить год полностью; то есть пишите ‘1990’, а не ‘90’.

o (calendar-other-month) запрашивает месяц и год, а затем центрирует трехмесячный календарь вокруг этого месяца.

Вы  можете  вернуться к  сегодняшней дате  с помощью команды . (calendar-gototoday).

29.2  Прокрутка календаря

Изображение календаря автоматически прокручивается, когда вы сдвигаетесь за пределы видимой части. Вы также можете прокручивать его вручную. Представьте, что окно календаря содержит длинную ленту бумаги с месяцами. Прокрутка  ее  означает, что в этом окне станут видимыми новые месяцы.

C-x <         Прокручивает календарь на один месяц вперед (scroll-calendar-left). C-x >         Прокручивает календарь на один месяц назад (scroll-calendar-right). C-v

hNEXTi           Прокручивает календарь на три месяца вперед (scroll-calendar-left-three-

months).

M-v

hPRIORi         Прокручивает календарь на три месяца назад (scroll-calendar-right-threemonths).

Самые основные команды прокрутки календаря прокручивают по одному месяцу за раз. Это означает, что между отображением до команды и отображением  после делается два месяца перекрытия. C-x < прокручивает содержимое календаря на месяц влево; то есть она перемещает вид вперед по времени. C-x > прокручивает содержимое календаря вправо, что перемещает назад во времени.

Команды C-v и M-v прокручивают календарь по целым экранам — по три месяца — по аналогии с обычным значением этих команд. C-v делает видимыми более поздние  даты, а M-v — более ранние. Эти команды принимают числовой аргумент в качестве счетчика повторов; в частности, так как C-u умножает следующую команду на четыре, набор C-u C-v прокручивает календарь на год вперед, а C-u M-v прокручивает на год назад.

Функциональные клавиши hNEXTi  и hPRIORi  эквивалентны C-v и M-v, как  и в других режимах.

29.3  Посчет дней

M-=            Выводит число дней в текущей области (calendar-count-days-region).

Чтобы определить число дней в области, наберите M-= (calendar-count-days-region). Количество дней выводится включительно; то есть дни, указываемые точкой и меткой, учитываются.

29.4  Другие команды календаря

p d             Выводит номер дня в году (calendar-print-day-of-year).

C-c C-l       Заново генерирует окно календаря (redraw-calendar). SPC                 Прокручивает следующее окно (scroll-other-window). q                Выходит из календаря (exit-calendar).

Чтобы напечатать число дней, прошедших  с начала года  или остающихся до конца года, наберите команду p d (calendar-print-day-of-year). Она покажет оба этих числа в эхо-области. Количество прошедших дней включает выбранную дату. Число оставшихся дней не включает ее.

Если окно календаря окажется испорчено, наберите C-c C-l  (redraw-calendar) чтобы его перерисовать. (Такое может случиться, только если вы используете команды редактирования не из режима Calendar.)

В режиме Calendar вы можете использовать SPC (scroll-other-window) для прокрутки другого окна. Это удобно, если вы смотрите в другом окне список праздников или записи ежедневника.

Чтобы выйти из календаря, наберите  q (exit-calendar).   Эта команда прячет все буферы, связанные  с календарем,  и выбирает другие буферы.  (Если фрейм  содержит специально назначенное окно календаря, выход из календаря минимизирует этот фрейм.)

29.5  LaTeX и календарь

Команды календаря для работы с LaTEX  генерируют  буфер с LaTEX-кодом, который печатает календарь. В зависимости от использованой команды напечатанный календарь покрывает день, неделю, месяц или год, в котором находится точка.

t m                      Генерирует календарь на один месяц (cal-tex-cursor-month).

t M                      Генерирует горизонтальный календарь на один месяц (cal-tex-cursor-monthlandscape).

t d             Генерирует календарь на один день (cal-tex-cursor-day).

t w 1          Генерирует одностраничный календарь на  одну  неделю  (cal-tex-cursorweek).

t w 2          Генерирует двухстраничный  календарь на  одну  неделю  (cal-tex-cursorweek2).

t w 3          Генерирует календарь в стиле ISO на одну неделю (cal-tex-cursor-week-iso).

t w 4          Генерирует календарь на одну неделю, начинающуюся с  понедельника (caltex-cursor-week-monday).

t f w               Генерирует двухнедельный календарь на одной странице в стиле Filofax (caltex-cursor-filofax-2week).

t f W                   Генерирует недельный календарь на одной странице в стиле Filofax (cal-texcursor-filofax-week).

t y             Генерирует календарь на один год (cal-tex-cursor-year).

t Y                 Генерирует горизонтальный  календарь на один год  (cal-tex-cursor-yearlandscape).

t f y          Генерирует календарь на один год в стиле Filofax (cal-tex-cursor-filofaxyear).

Некоторые из этих команд печатают календарь горизонально (в “ландшафтном режиме”),  поэтому его ширина может быть больше  длины.   Некоторые из них используют размер бумаги Filofax (3.75 на 6.75 дюймов).  Все эти команды принимают префиксный аргумент, задающий число печатаемых дней, недель, месяцев или лет (всегда начиная от текущего).

Если переменная cal-tex-holidays не равна nil (это значение по умолчанию), то печатаемые календари показывают праздники из calendar-holidays. Если переменная caltex-diary отлична от nil (по умолчанию это nil), также включаются записи из дневника (только в недельные и месячные календари). Если отлична от nil переменная cal-texrules (по умолчанию nil), то в тех стилях распечатки календаря, где достаточно места, страницы разлинованы.

29.6  Праздники

Календарь Emacs знает обо всех больших и о многих малых праздниках и может их отображать.

h                Показать праздники, приходящиеся на выбранную дату  (calendar-cursorholidays).

Mouse-2 Holidays

Показать все праздники для даты, на которой вы щелкнули.

x                 Пометить праздники (mark-calendar-holidays).

u                Снять метки в окне календаря (calendar-unmark).

a                Перечислить в другом окне все праздники для показанных трех месяцев (listcalendar-holidays).

M-x holidays

Перечислить в другом окне  все праздники для трех месяцев вокруг текущей даты.

M-x list-holidays

Перечислить в другом окне праздники для заданного промежутка лет.

Источник: Ричард Столмен, Руководство по GNU Emacs

Похожие посты:

Вы можете оставить комментарий, или ссылку на Ваш сайт.

Оставить комментарий