[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
39.15.5 Customizing the Diary
Ordinarily, the mode line of the diary buffer window indicates any
holidays that fall on the date of the diary entries. The process of
checking for holidays can take several seconds, so including holiday
information delays the display of the diary buffer noticeably. If you'd
prefer to have a faster display of the diary buffer but without the
holiday information, set the variable holidays-in-diary-buffer
to
nil
.
The variable number-of-diary-entries
controls the number of
days of diary entries to be displayed at one time. It affects the
initial display when view-diary-entries-initially
is t
, as
well as the command M-x diary. For example, the default value is
1, which says to display only the current day's diary entries. If the
value is 2, both the current day's and the next day's entries are
displayed. The value can also be a vector of seven elements: for
example, if the value is [0 2 2 2 2 4 1]
then no diary entries
appear on Sunday, the current date's and the next day's diary entries
appear Monday through Thursday, Friday through Monday's entries appear
on Friday, while on Saturday only that day's entries appear.
The variable print-diary-entries-hook
is a normal hook run
after preparation of a temporary buffer containing just the diary
entries currently visible in the diary buffer. (The other, irrelevant
diary entries are really absent from the temporary buffer; in the diary
buffer, they are merely hidden.) The default value of this hook does
the printing with the command lpr-buffer
. If you want to use a
different command to do the printing, just change the value of this
hook. Other uses might include, for example, rearranging the lines into
order by day and time.
You can customize the form of dates in your diary file, if neither the
standard American nor European styles suits your needs, by setting the
variable diary-date-forms
. This variable is a list of patterns
for recognizing a date. Each date pattern is a list whose elements may
be regular expressions (see (elisp)Regular Expressions section `Regular Expressions' in the Emacs Lisp Reference Manual) or the symbols month
, day
,
year
, monthname
, and dayname
. All these elements
serve as patterns that match certain kinds of text in the diary file.
In order for the date pattern, as a whole, to match, all of its elements
must match consecutively.
A regular expression in a date pattern matches in its usual fashion, using the standard syntax table altered so that ‘*’ is a word constituent.
The symbols month
, day
, year
, monthname
,
and dayname
match the month number, day number, year number,
month name, and day name of the date being considered. The symbols that
match numbers allow leading zeros; those that match names allow
three-letter abbreviations and capitalization. All the symbols can
match ‘*’; since ‘*’ in a diary entry means “any day”, “any
month”, and so on, it should match regardless of the date being
considered.
The default value of diary-date-forms
in the American style is
this:
((month "/" day "[^/0-9]") (month "/" day "/" year "[^0-9]") (monthname " *" day "[^,0-9]") (monthname " *" day ", *" year "[^0-9]") (dayname "\\W")) |
The date patterns in the list must be mutually exclusive and
must not match any portion of the diary entry itself, just the date and
one character of whitespace. If, to be mutually exclusive, the pattern
must match a portion of the diary entry text—beyond the whitespace
that ends the date—then the first element of the date pattern
must be backup
. This causes the date recognizer to back
up to the beginning of the current word of the diary entry, after
finishing the match. Even if you use backup
, the date pattern
must absolutely not match more than a portion of the first word of the
diary entry. The default value of diary-date-forms
in the
European style is this list:
((day "/" month "[^/0-9]") (day "/" month "/" year "[^0-9]") (backup day " *" monthname "\\W+\\<[^*0-9]") (day " *" monthname " *" year "[^0-9]") (dayname "\\W")) |
Notice the use of backup
in the third pattern, because it needs
to match part of a word beyond the date itself to distinguish it from
the fourth pattern.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |