]> code.delx.au - gnu-emacs/blob - man/org.texi
(Workflow states): Documented that change in keywords
[gnu-emacs] / man / org.texi
1 \input texinfo
2 @c %**start of header
3 @c @setfilename org
4 @setfilename ../info/org
5 @settitle Org Mode Manual
6
7 @set VERSION 3.17
8 @set DATE October 2005
9
10 @dircategory Emacs
11 @direntry
12 * Org Mode: (org). Outline-based notes management and organizer
13 @end direntry
14
15 @c Version and Contact Info
16 @set MAINTAINERSITE @uref{http://www.astro.uva.nl/~dominik/Tools/org/,maintainers webpage}
17 @set MAINTAINER Carsten Dominik
18 @set MAINTAINEREMAIL @email{dominik@@science.uva.nl}
19 @set MAINTAINERCONTACT @uref{mailto:dominik@@science.uva.nl,contact the maintainer}
20 @c %**end of header
21 @finalout
22
23 @c Macro definitions
24
25 @c Subheadings inside a table. Need a difference between info and the rest.
26 @macro tsubheading{text}
27 @ifinfo
28 @subsubheading \text\
29 @end ifinfo
30 @ifnotinfo
31 @item @b{\text\}
32 @end ifnotinfo
33 @end macro
34
35 @copying
36 This manual is for Org-mode (version @value{VERSION}).
37
38 Copyright @copyright{} 2004, 2005 Free Software Foundation
39
40 @quotation
41 Permission is granted to copy, distribute and/or modify this document
42 under the terms of the GNU Free Documentation License, Version 1.1 or
43 any later version published by the Free Software Foundation; with no
44 Invariant Sections, with the Front-Cover texts being ``A GNU Manual,''
45 and with the Back-Cover Texts as in (a) below. A copy of the
46 license is included in the section entitled ``GNU Free Documentation
47 License.''
48
49 (a) The FSF's Back-Cover Text is: ``You have freedom to copy and modify
50 this GNU Manual, like GNU software. Copies published by the Free
51 Software Foundation raise funds for GNU development.''
52 @end quotation
53 @end copying
54
55 @titlepage
56 @title Org Mode Manual
57
58 @subtitle Release @value{VERSION}
59 @author by Carsten Dominik
60
61 @c The following two commands start the copyright page.
62 @page
63 @vskip 0pt plus 1filll
64 @insertcopying
65 @end titlepage
66
67 @c Output the table of contents at the beginning.
68 @contents
69
70 @ifnottex
71 @node Top, Introduction, (dir), (dir)
72 @top Org Mode Manual
73
74 @insertcopying
75 @end ifnottex
76
77 @menu
78 * Introduction:: Getting started
79 * Document Structure:: A tree works like your brain
80 * Tables:: Pure magic for quick formatting
81 * Hyperlinks:: Notes in context
82 * TODO items:: Every tree branch can be a TODO item
83 * Timestamps:: Assign date and time to items
84 * Timeline and Agenda:: Use time-stamped items to produce an agenda
85 * Exporting:: Sharing and publishing of notes
86 * Miscellaneous:: All the rest which did not fit elsewhere
87 * Index:: The fast road to specific information
88 * Key Index:: Key bindings and where they are described
89
90 @detailmenu
91 --- The Detailed Node Listing ---
92
93 Introduction
94
95 * Summary:: Brief summary of what Org-mode does
96 * Installation and Activation:: How to install Org-mode
97 * Feedback:: Bug reports, ideas, patches etc.
98
99 Document Structure
100
101 * Outlines:: Org-mode is based on outline-mode
102 * Headlines:: How to typeset org-tree headlines
103 * Visibility cycling:: Show and hide, much simplified
104 * Motion:: Jumping to other headlines
105 * Structure editing:: Changing sequence and level of headlines
106 * Archiving:: Move done task trees to a different place
107 * Sparse trees:: Matches embedded in context
108
109 Tables
110
111 * Built-in table editor:: Simple tables
112 * Table calculations:: Compute a field from other fields
113 * orgtbl-mode:: The table editor as minor mode
114 * table.el:: Complex tables
115
116 Calculations in tables
117
118 * Formula syntax:: How to write a formula
119 * Column formulas:: Formulas valid for all fields in a column
120 * Advanced features:: Field names, parameters and automatic recalc
121 * Named-field formulas:: Formulas valid in single fields
122 * Editing/debugging formulas:: Changing a stored formula
123 * Appetizer:: Taste the power of calc
124
125 Hyperlinks
126
127 * Links:: URL-like links to the world
128 * Remember:: Org-trees store quick notes
129
130 TODO items
131
132 * TODO basics:: Marking and displaying TODO entries
133 * TODO extensions:: Workflow and assignments
134 * Priorities:: Some things are more important than others
135
136 Extended use of TODO keywords
137
138 * Workflow states:: From TODO to DONE in steps
139 * TODO types:: I do this, Fred the rest
140 * Per file keywords:: Different files, different requirements
141
142 Timestamps
143
144 * Time stamps:: Assigning a time to a tree entry
145 * Creating timestamps:: Commands which insert timestamps
146
147 Timeline and Agenda
148
149 * Timeline:: Time-sorted view for single file
150 * Agenda:: Your weekly planner
151 * Agenda commands:: Remote editing of org trees
152 * Calendar/Diary integration:: Integrating Anniversaries and more
153
154 Calendar/Diary integration
155
156 * Diary to agenda:: Agenda incorporates the diary
157 * Agenda to diary:: Diary incorporates the agenda
158
159 Exporting
160
161 * Export commands:: Commands which export and display
162 * HTML formatting:: Interpretation of the buffer content
163 * Export options:: How to influence exports
164 * Comment lines:: Lines which will not be exported
165
166 Miscellaneous
167
168 * Completion:: M-TAB knows what you need
169 * Customization:: Adapting Org-mode to your taste
170 * FAQ:: Frequently asked questions
171 * Interaction:: Other Emacs packages
172 * TTY keys:: Using Org-mode on a tty
173 * Bugs:: Things which do not work perfectly
174 * Acknowledgments:: These people provided feedback and more
175
176 @end detailmenu
177 @end menu
178
179 @node Introduction, Document Structure, Top, Top
180 @chapter Introduction
181 @cindex introduction
182
183 @menu
184 * Summary:: Brief summary of what Org-mode does
185 * Installation and Activation:: How to install Org-mode
186 * Feedback:: Bug reports, ideas, patches etc.
187 @end menu
188
189 @node Summary, Installation and Activation, Introduction, Introduction
190 @section Summary
191 @cindex summary
192
193 Org-mode is a mode for keeping notes, maintaining ToDo lists, and doing
194 project planning with a fast and effective plain-text system.
195
196 Org-mode develops organizational tasks around NOTES files that contain
197 information about projects as plain text. Org-mode is implemented on
198 top of outline-mode, which makes it possible to keep the content of
199 large files well structured. Visibility cycling and structure editing
200 help to work with the tree. Tables are easily created with a built-in
201 table editor. Org-mode supports ToDo items, deadlines, time stamps,
202 and scheduling. It dynamically compiles entries into an agenda that
203 utilizes and smoothly integrates much of the Emacs calendar and diary.
204 Plain text URL-like links connect to websites, emails, Usenet
205 messages, BBDB entries, and any files related to the projects. For
206 printing and sharing of notes, an Org-mode file can be exported as a
207 structured ASCII file, or as HTML.
208
209 Org-mode keeps simple things simple. Not every outline branch needs
210 to be an action item, not every action item needs to have priority or
211 scheduling information associated with it. Org-mode can be used on
212 different levels and in different ways, for example
213
214 @example
215 @r{@bullet{} as an outline extension with visibility cycling and structure editing}
216 @r{@bullet{} as an ASCII system and table editor to take structured notes}
217 @r{@bullet{} as an ASCII table editor with some spreadsheet-like capabilities}
218 @r{@bullet{} as a simple hypertext system, with HTML export}
219 @r{@bullet{} as a TODO list editor}
220 @r{@bullet{} as a full agenda and planner with deadlines and work scheduling}
221 @end example
222
223 The Org-mode table editor can be integrated into any major mode by
224 activating the minor Orgtbl-mode.
225
226 There is a website for Org-mode which provides links to the newest
227 version of Org-mode, as well as additional information, screen shots
228 and example files. This page is located at
229 @uref{http://www.astro.uva.nl/~dominik/Tools/org/}.
230
231 @page
232
233 @node Installation and Activation, Feedback, Summary, Introduction
234 @section Installation and Activation
235 @cindex installation
236 @cindex autoload
237 @cindex global keybindings
238 @cindex keybindings, global
239
240 If Org-mode is part of the Emacs distribution or an XEmacs package,
241 you only need to copy the following lines to your @file{.emacs} file.
242 The last two lines define @emph{global} keys for the commands
243 @command{org-store-link} and @command{org-agenda} - please choose
244 suitable keys yourself.
245
246 @lisp
247 ;; The following lines are always needed. Choose your own keys.
248 (add-to-list 'auto-mode-alist '("\\.org$" . org-mode))
249 (define-key global-map "\C-cl" 'org-store-link)
250 (define-key global-map "\C-ca" 'org-agenda)
251 @end lisp
252
253 If you have downloaded Org-mode from the Web, you must byte-compile
254 @file{org.el} and put it on your load path. In addition to the Emacs
255 Lisp lines above, you also need to add the following lines to
256 @file{.emacs}:
257
258 @lisp
259 ;; These lines only if org-mode is not part of the X/Emacs distribution.
260 (autoload 'org-mode "org" "Org mode" t)
261 (autoload 'org-diary "org" "Diary entries from Org mode")
262 (autoload 'org-agenda "org" "Multi-file agenda from Org mode" t)
263 (autoload 'org-store-link "org" "Store a link to the current location" t)
264 (autoload 'orgtbl-mode "org" "Org tables as a minor mode" t)
265 (autoload 'turn-on-orgtbl "org" "Org tables as a minor mode")
266 @end lisp
267
268 @cindex org-mode, turning on
269 With this setup, all files with extension @samp{.org} will be put into
270 Org-mode. As an alternative, make the first line of a file look like
271 this:
272
273 @example
274 MY PROJECTS -*- mode: org; -*-
275 @end example
276
277 @noindent which will select Org-mode for this buffer no matter what
278 the file's name is. See also the variable
279 @code{org-insert-mode-line-in-empty-file'}.
280
281 @node Feedback, , Installation and Activation, Introduction
282 @section Feedback
283 @cindex feedback
284 @cindex bug reports
285 @cindex maintainer
286 @cindex author
287
288 If you find problems with Org-mode, or if you have questions, remarks,
289 or ideas about it, please contact the maintainer Carsten Dominik at
290 @value{MAINTAINEREMAIL}.
291
292 For bug reports, please provide as much information as possible,
293 including the version information of Emacs (@kbd{C-h v emacs-version
294 @key{RET}}) and Org-mode (@kbd{M-x org-version}), as well as the
295 Org-mode related setup in @file{.emacs}. If an error occurs, a
296 traceback can be very useful. Often a small example file helps, along
297 with clear information about:
298 @enumerate
299 @item What exactly did you do?
300 @item What did you expect to happen?
301 @item What happened instead?
302 @end enumerate
303 @noindent Thanks for helping to improve this mode.
304
305 @node Document Structure, Tables, Introduction, Top
306 @chapter Document Structure
307 @cindex document structure
308 @cindex structure of document
309
310 Org-mode is based on outline mode and provides flexible commands to
311 edit the structure of the document.
312
313 @menu
314 * Outlines:: Org-mode is based on outline-mode
315 * Headlines:: How to typeset org-tree headlines
316 * Visibility cycling:: Show and hide, much simplified
317 * Motion:: Jumping to other headlines
318 * Structure editing:: Changing sequence and level of headlines
319 * Archiving:: Move done task trees to a different place
320 * Sparse trees:: Matches embedded in context
321 @end menu
322
323 @node Outlines, Headlines, Document Structure, Document Structure
324 @section Outlines
325 @cindex outlines
326 @cindex outline-mode
327
328 Org-mode is implemented on top of outline-mode. Outlines allow to
329 organize a document in a hierarchical structure, which (at least for
330 me) is the best representation of notes and thoughts. Overview over
331 this structure is achieved by folding (hiding) large parts of the
332 document to show only the general document structure and the parts
333 currently being worked on. Org-mode greatly simplifies the use of
334 outlines by compressing the entire show/hide functionality into a
335 single command @command{org-cycle}, which is bound to the @key{TAB}
336 key.
337
338 @node Headlines, Visibility cycling, Outlines, Document Structure
339 @section Headlines
340 @cindex headlines
341 @cindex outline tree
342
343 Headlines define the structure of an outline tree. The Headlines in
344 Org-mode start with one or more stars, for example
345
346 @example
347 * Top level headline
348 ** Second level
349 *** 3rd level
350 some text
351 *** 3rd level
352 more text
353 * Another top level headline
354 @end example
355
356 @node Visibility cycling, Motion, Headlines, Document Structure
357 @section Visibility cycling
358 @cindex visibility cycling
359 @cindex trees, visibility
360
361 Outlines make it possible to hide parts of the text in the buffer.
362 Org-mode uses a single command bound to the @key{TAB} key to change
363 the visibility in the buffer.
364
365 @cindex subtree visibility states
366 @cindex folded, subtree visibility state
367 @cindex children, subtree visibility state
368 @cindex subtree, subtree visibility state
369 @table @kbd
370 @kindex @key{TAB}
371 @item @key{TAB}
372 Rotate current subtree between the states
373 @example
374 ,-> FOLDED -> CHILDREN -> SUBTREE --.
375 '-----------------------------------'
376 @end example
377 At the beginning of the buffer (or when called with @kbd{C-u}), this does
378 the same as the command @kbd{S-@key{TAB}} below.
379
380 @cindex global visibility states
381 @cindex overview, global visibility state
382 @cindex contents, global visibility state
383 @cindex show all, global visibility state
384 @kindex S-@key{TAB}
385 @item S-@key{TAB}
386 Rotate the entire buffer between the states
387 @example
388 ,-> OVERVIEW -> CONTENTS -> SHOW ALL --.
389 '--------------------------------------'
390 @end example
391 Note that inside tables, @kbd{S-@key{TAB}} jumps to the previous field.
392
393 @cindex show all, command
394 @kindex C-c C-a
395 @item C-c C-a
396 Show all.
397 @end table
398
399 When Emacs first visits an Org-mode file, the global state is set to
400 OVERVIEW, i.e. only the top level headlines are visible. This can be
401 configured through the variable @code{org-startup-folded}, or on a
402 per-file basis by adding one of the following lines anywhere in the
403 buffer:
404
405 @example
406 #+STARTUP: fold
407 #+STARTUP: nofold
408 #+STARTUP: content
409 @end example
410
411 @node Motion, Structure editing, Visibility cycling, Document Structure
412 @section Motion
413 @cindex motion, between headlines
414 @cindex jumping, to headlines
415 The following commands jump to other headlines in the buffer.
416
417 @table @kbd
418 @kindex C-c C-n
419 @item C-c C-n
420 Next heading.
421 @kindex C-c C-p
422 @item C-c C-p
423 Previous heading.
424 @kindex C-c C-f
425 @item C-c C-f
426 Next heading same level.
427 @kindex C-c C-b
428 @item C-c C-b
429 Previous heading same level.
430 @kindex C-c C-u
431 @item C-c C-u
432 Backward to higher level heading.
433 @kindex C-c C-j
434 @item C-c C-j
435 Jump to a different place without changing the current outline
436 visibility. Shows the document structure in a temporary buffer, where
437 you can use visibility cycling (@key{TAB}) to find your destination.
438 After pressing @key{RET}, the cursor moves to the selected location in
439 the original buffer, and the headings hierarchy above it is made
440 visible.
441 @end table
442
443 @node Structure editing, Archiving, Motion, Document Structure
444 @section Structure editing
445 @cindex structure editing
446 @cindex headline, promotion and demotion
447 @cindex promotion, of subtrees
448 @cindex demotion, of subtrees
449 @cindex subtree, cut and paste
450 @cindex pasting, of subtrees
451 @cindex cutting, of subtrees
452 @cindex copying, of subtrees
453
454 @table @kbd
455 @kindex M-@key{RET}
456 @item M-@key{RET}
457 Insert new heading with same level as current
458 @kindex M-S-@key{RET}
459 @item M-S-@key{RET}
460 Insert new TODO entry with same level as current heading.
461 @kindex M-@key{left}
462 @item M-@key{left}
463 Promote current heading by one level
464 @kindex M-@key{right}
465 @item M-@key{right}
466 Demote current heading by one level
467 @kindex M-S-@key{left}
468 @item M-S-@key{left}
469 Promote the current subtree by one level
470 @kindex M-S-@key{right}
471 @item M-S-@key{right}
472 Demote the current subtree by one level
473 @kindex M-S-@key{up}
474 @item M-S-@key{up}
475 Move subtree up (swap with previous subtree of same level)
476 @kindex M-S-@key{down}
477 @item M-S-@key{down}
478 Move subtree down (swap with next subtree of same level)
479 @kindex C-c C-x C-w
480 @item C-c C-x C-w
481 Kill subtree, i.e. remove it from buffer but save in kill ring.
482 @kindex C-c C-x M-w
483 @item C-c C-x M-w
484 Copy subtree to kill ring.
485 @kindex C-c C-x C-y
486 @item C-c C-x C-y
487 Yank subtree from kill ring. This does modify the level of the subtree to
488 make sure the tree fits in nicely at the yank position. The yank
489 level can also be specified with a prefix arg, or by yanking after a
490 headline marker like @samp{****}.
491 @end table
492
493 @cindex region, active
494 @cindex active region
495 @cindex transient-mark-mode
496 When there is an active region (transient-mark-mode), promotion and
497 demotion work on all headlines in the region. To select a region of
498 headlines, it is best to place both point and mark at the beginning of a
499 line, mark at the beginning of the first headline, and point at the line
500 just after the last headline to change. Note that when the cursor is
501 inside a table (@pxref{Tables}), the Meta-Cursor keys have different
502 functionality.
503
504 @node Archiving, Sparse trees, Structure editing, Document Structure
505 @section Archiving
506 @cindex archiving
507
508 When a project represented by a (sub)tree is finished, you may want
509 to move the tree to an archive place, either in the same file under a
510 special top-level heading, or even to a different file.
511 @table @kbd
512 @kindex C-c $
513 @item @kbd{C-c $}
514 Archive the subtree starting at the cursor position to the location
515 given by @code{org-archive-location}.
516 @end table
517
518 @cindex archive locations
519 The default archive is a file in the same directory as the current
520 file, with the name derived by appending @file{_archive} to the
521 current file name. For information and examples on how to change
522 this, see the documentation string of the variable
523 @code{org-archive-location}. If you are also using the Org-mode
524 agenda, archiving to a different file is a good way to keep archived
525 trees from contributing agenda items.
526
527 @node Sparse trees, , Archiving, Document Structure
528 @section Sparse trees
529 @cindex sparse trees
530 @cindex trees, sparse
531 @cindex folding, sparse trees
532 @cindex occur, command
533
534 An important feature of Org-mode is the ability to construct
535 @emph{sparse trees} for selected information in an outline tree. A
536 sparse tree means that the entire document is folded as much as
537 possible, but the selected information is made visible along with the
538 headline structure above it@footnote{See also the variable
539 @code{org-show-following-heading}.}. Just try it out and you will see
540 immediately how it works.
541
542 Org-mode contains several commands creating such trees. The most
543 basic one is @command{org-occur}:
544
545 @table @kbd
546 @kindex C-c /
547 @item C-c /
548 Occur. Prompts for a regexp and shows a sparse tree with all matches.
549 If the match is in a headline, the headline is made visible. If the
550 match is in the body of an entry, headline and body are made visible.
551 In order to provide minimal context, also the full hierarchy of
552 headlines above the match is shown, as well as the headline following
553 the match.
554 @end table
555
556 Other commands are using this feature as well. For example @kbd{C-c
557 C-v} creates a sparse TODO tree (@pxref{TODO basics}).
558
559 @kindex C-c C-x v
560 @cindex printing sparse trees
561 @cindex visible text, printing
562 To print a sparse tree, you can use the Emacs command
563 @code{ps-print-buffer-with-faces} which does not print invisible parts
564 of the document @footnote{This does not work under XEmacs, because
565 XEmacs uses selective display for outlining, not text properties}.
566 Or you can use the command @kbd{C-c C-x v} to copy the visible part of
567 the document to another file (extension @file{.txt}) which then can be
568 printed in any desired way.
569
570 @node Tables, Hyperlinks, Document Structure, Top
571 @chapter Tables
572 @cindex tables
573
574 Org-mode has a very fast and intuitive table editor built-in.
575 Spreadsheet-like calculations are supported in connection with the
576 Emacs @file{calc} package.
577
578 @menu
579 * Built-in table editor:: Simple tables
580 * Table calculations:: Compute a field from other fields
581 * orgtbl-mode:: The table editor as minor mode
582 * table.el:: Complex tables
583 @end menu
584
585 @node Built-in table editor, Table calculations, Tables, Tables
586 @section The built-in table editor
587 @cindex table editor, builtin
588
589 Org-mode makes it easy to format tables in plain ASCII. Any line with
590 @samp{|} as the first non-white character is considered part of a
591 table. @samp{|} is also the column separator. A table might look
592 like this:
593
594 @example
595 | Name | Phone | Age |
596 |-------+-------+-----|
597 | Peter | 1234 | 17 |
598 | Anna | 4321 | 25 |
599 @end example
600
601 A table is re-aligned automatically each time you press @key{TAB} or
602 @key{RET} or @kbd{C-c C-c} inside the table. @key{TAB} also moves to
603 the next field (@key{RET} to the next row) and creates new table rows
604 at the end of the table or before horizontal lines. The indentation
605 of the table is set by the first line. Any line starting with
606 @samp{|-} is considered as a horizontal separator line and will be
607 expanded on the next re-align to span the whole table width. So, to
608 create the above table, you would only type
609
610 @example
611 |Name|Phone|Age
612 |-
613 @end example
614 @noindent and then press @key{TAB} to align the table and start filling in
615 fields.
616
617 When typing text into a field, Org-mode treats @key{DEL},
618 @key{Backspace}, and all character keys in a special way, so that
619 inserting and deleting avoids shifting other fields. Also, when
620 typing @emph{immediately after the cursor was moved into a new field
621 with @kbd{@key{TAB}}, @kbd{S-@key{TAB}} or @kbd{@key{RET}}}, the
622 field is automatically made blank. If this behavior is too
623 unpredictable for you, configure the variables
624 @code{org-enable-table-editor} and @code{org-table-auto-blank-field}.
625
626 @table @kbd
627 @tsubheading{Creation and conversion}
628 @item M-x org-table-create
629 Creates an empty Org-mode table. However, it is much easier to just
630 start typing, like @kbd{|Name|Phone|Age @key{RET} |- @key{TAB}}
631
632 @kindex C-c C-c
633 @item C-c C-c
634 Convert region to table. Works when the cursor is not in an existing
635 table, and when there is a region defined. If every line contains at
636 least one TAB character, the function assumes that the material is tab
637 separated. If not, lines are split at whitespace into fields. You
638 can use a prefix argument to indicate how many consecutive spaces are
639 at least required to indicate a field separator (default: just one).
640
641 @tsubheading{Re-aligning and field motion}
642 @kindex C-c C-c
643 @item C-c C-c
644 Re-align the table without moving the cursor.
645
646 @kindex @key{TAB}
647 @item @key{TAB}
648 Re-align the table, move to the next field. Creates a new row if
649 necessary.
650
651 @kindex S-@key{TAB}
652 @item S-@key{TAB}
653 Re-align, move to previous field.
654
655 @kindex @key{RET}
656 @item @key{RET}
657 Re-align the table and move down to next row. Creates a new row if
658 necessary. At the beginning or end of a line, @key{RET} still does
659 NEWLINE, so it can be used to split a table.
660
661 @tsubheading{Column and row editing}
662 @kindex M-@key{left}
663 @kindex M-@key{right}
664 @item M-@key{left}
665 @itemx M-@key{right}
666 Move the current column left/right
667
668 @kindex M-S-@key{left}
669 @item M-S-@key{left}
670 Kill the current column.
671
672 @kindex M-S-@key{right}
673 @item M-S-@key{right}
674 Insert a new column to the left of the cursor position.
675
676 @kindex M-@key{up}
677 @kindex M-@key{down}
678 @item M-@key{up}
679 @itemx M-@key{down}
680 Move the current row up/down
681
682 @kindex M-S-@key{up}
683 @item M-S-@key{up}
684 Kill the current row or horizontal line.
685
686 @kindex M-S-@key{down}
687 @item M-S-@key{down}
688 Insert a new row above (with arg: below) the current row.
689
690 @kindex C-c -
691 @item C-c -
692 Insert a horizontal line below current row. With prefix arg, the line
693 is created above the current line.
694
695 @tsubheading{Regions}
696 @kindex C-c C-x M-w
697 @item C-c C-x M-w
698 Copy a rectangular region from a table to a special clipboard. Point
699 and mark determine edge fields of the rectangle. The process ignores
700 horizontal separator lines.
701 @kindex C-c C-x C-w
702 @item C-c C-x C-w
703 Copy a rectangular region from a table to a special clipboard, and
704 blank all fields in the rectangle. So this is the ``cut'' operation.
705 @kindex C-c C-x C-y
706 @item C-c C-x C-y
707 Paste a rectangular region into a table.
708 The upper right corner ends up in the current field. All involved fields
709 will be overwritten. If the rectangle does not fit into the present table,
710 the table is enlarged as needed. The process ignores horizontal separator
711 lines.
712 @kindex C-c C-q
713 @item C-c C-q
714 Wrap several fields in a column like a paragraph. If there is an active
715 region, and both point and mark are in the same column, the text in the
716 column is wrapped to minimum width for the given number of lines. A
717 prefix ARG may be used to change the number of desired lines. If there
718 is no region, the current field is split at the cursor position and the
719 text fragment to the right of the cursor is prepended to the field one
720 line down. If there is no region, but you specify a prefix ARG, the
721 current field gets blank, and the content is appended to the field
722 above.
723
724 @tsubheading{Calculations}
725 @cindex formula, in tables
726 @cindex calculations, in tables
727 @kindex C-c =
728 @item C-c =
729 Install a new formula for the current column and replace current field
730 with the result of the formula.
731
732 @kindex C-u C-c =
733 @item C-u C-c =
734 Install a new formula for the current field, which must be a named
735 field. Evaluate the formula and replace the field content with the
736 result.
737
738 @kindex C-c '
739 @item C-c '
740 Edit all formulas associated with the current table in a separate
741 buffer.
742
743 @kindex C-c *
744 @item C-c *
745 Recalculate the current row by applying the stored formulas from left
746 to right. When called with a @kbd{C-u} prefix, recalculate the
747 entire table, starting with the first non-header line (i.e. below the
748 first horizontal separator line). For details, see @ref{Table calculations}.
749
750 @kindex C-#
751 @item C-#
752 Rotate the calculation mark in first column through the states
753 @samp{}, @samp{#}, @samp{*}, @samp{!}, @samp{$}. For the meaning of
754 these marks see @ref{Advanced features}. When there is an active
755 region, change all marks in the region.
756
757 @kindex C-c ?
758 @item C-c ?
759 Which table column is the cursor in? Displays number >0 in echo
760 area.
761
762 @cindex region, active
763 @cindex active region
764 @cindex transient-mark-mode
765 @kindex C-c +
766 @item C-c +
767 Sum the numbers in the current column, or in the rectangle defined by
768 the active region. The result is shown in the echo area and can
769 be inserted with @kbd{C-y}.
770
771 @kindex S-@key{RET}
772 @item S-@key{RET}
773 When current field is empty, copy from first non-empty field above.
774 When not empty, copy current field down to next row and move cursor
775 along with it. Depending on the variable
776 @code{org-table-copy-increment}, integer field values will be
777 incremented during copy. This key is also used by CUA-mode
778 (@pxref{Interaction}).
779
780 @tsubheading{Miscellaneous}
781 @kindex C-c |
782 @item C-c |
783 Toggle the visibility of vertical lines in tables. The lines are
784 still there, only made invisible with a text property. Any @samp{|}
785 added by hand will become invisible on the next align.
786
787 @item M-x org-table-import
788 Import a file as a table. The table should be TAB- or whitespace
789 separated. Useful for example to import an Excel table or data from a
790 database, because these programs generally can write TAB-separated text
791 files. This command works by inserting the file into the buffer and
792 then converting the region to a table. Any prefix argument is passed on
793 to the converter, which uses it to determine the separator.
794
795 @item M-x org-table-export
796 Export the table as a TAB-separated file. Useful for data exchange with
797 for example Excel or database programs.
798
799 @end table
800
801 If you don't like the automatic table editor because it gets into your
802 way in lines which you would like to start with @samp{|}, you can turn
803 it off with
804 @lisp
805 (setq org-enable-table-editor nil)
806 @end lisp
807 @noindent The only table command which then still works is
808 @kbd{C-c C-c} to do a manual re-align.
809
810 @node Table calculations, orgtbl-mode, Built-in table editor, Tables
811 @section Calculations in tables
812 @cindex calculations, in tables
813
814 The table editor makes use of the Emacs @file{calc} package to
815 implement spreadsheet-like capabilities. Org-mode has two levels of
816 complexity for table calculations. On the basic level, tables do only
817 horizontal computations, so a field can be computed from other fields
818 @emph{in the same row}, and Org-mode assumes that there is only one
819 formula for each column. This is very efficient to work with and
820 enough for many tasks. On the complex level, columns and individual
821 fields can be named for easier referencing in formulas, individual
822 named fields can have their own formula associated with them, and
823 recalculation can be automated.
824
825 @menu
826 * Formula syntax:: How to write a formula
827 * Column formulas:: Formulas valid for all fields in a column
828 * Advanced features:: Field names, parameters and automatic recalc
829 * Named-field formulas:: Formulas valid in single fields
830 * Editing/debugging formulas:: Changing a stored formula
831 * Appetizer:: Taste the power of calc
832 @end menu
833
834 @node Formula syntax, Column formulas, Table calculations, Table calculations
835 @subsection Formula syntax
836
837 A formula can be any algebraic expression understood by the Emacs
838 @file{calc} package. Before evaluation by @code{calc-eval}
839 (@pxref{Calling Calc from Your Lisp Programs,calc-eval,Calling calc
840 from Your Lisp Programs,calc,GNU Emacs Calc Manual}), variable
841 substitution takes place:
842
843 @example
844 $ @r{refers to the current field}
845 $3 @r{refers to the field in column 3 of the current row}
846 $3..$7 @r{a vector of the fields in columns 3-7 of current row}
847 $P1..$P3 @r{vector of column range, using column names}
848 &2 @r{second data field above the current, in same column}
849 &5-2 @r{vector from fifth to second field above current}
850 &III-II @r{vector of fields between 2nd and 3rd hline above}
851 &III @r{vector of fields between third hline above and current field}
852 $name @r{a named field, parameter or constant}
853 @end example
854
855 The range vectors can be directly fed into the calc vector functions
856 like functions @samp{vmean} and @samp{vsum}.
857
858 @samp{$name} is interpreted as the name of a column, parameter or
859 constant. Constants are defined globally through the variable
860 @code{org-table-formula-constants}. If you have the
861 @file{constants.el} package, it will also be used to resolve
862 constants, including natural constants like @samp{$k} for Planck's
863 constant, units like @samp{$km} for kilometers. Column names and
864 parameters can be specified in special table lines. These are
865 described below, see @ref{Advanced features}.
866
867 A formula can contain an optional mode string after a semicolon. This
868 string consists of flags to influence calc's modes@footnote{By
869 default, Org-mode uses the standard calc modes (precision 12, angular
870 units degrees, fraction and symbolic modes off). However, the display
871 format has been changed to @code{(float 5)} to keep tables compact.
872 The default settings can be configured using the variable
873 @code{org-calc-default-modes}.} during execution, e.g. @samp{p20} to
874 switch the internal precision to 20 digits, @samp{n3}, @samp{s3},
875 @samp{e2} or @samp{f4} to switch to normal, scientific, engineering,
876 or fix display format, respectively, and @samp{D}, @samp{R}, @samp{F},
877 and @samp{S} to turn on degrees, radians, fraction and symbolic modes,
878 respectively. In addition, you may provide a @code{printf} format
879 specifier to reformat the final result. A few examples:
880 @example
881 $1+$2 @r{Sum of first and second field}
882 $1+$2;%.2f @r{Same, format result to two decimals}
883 exp($2)+exp($1) @r{Math functions can be used}
884 $;%.1f @r{Reformat current cell to 1 decimal}
885 ($3-32)*5/9 @r{Degrees F -> C conversion}
886 $c/$1/$cm @r{Hz -> cm conversion, using @file{constants.el}}
887 tan($1);Dp3s1 @r{Compute in degrees, precision 3, display SCI 1}
888 sin($1);Dp3%.1e @r{Same, but use printf specifier for display}
889 vmean($2..$7) @r{Compute column range mean, using vector function}
890 vsum(&III) @r{Sum numbers from 3rd hline above to here}
891 taylor($3,x=7,2) @r{taylor series of $3, at x=7, second degree}
892 @end example
893
894 @node Column formulas, Advanced features, Formula syntax, Table calculations
895 @subsection Column formulas
896
897 To apply a formula to a field, type it directly into the field,
898 preceded by an equal sign, like @samp{=$1+$2}. When you press
899 @key{TAB} or @key{RET} or @kbd{C-c C-c} with the cursor still in the
900 field, the formula will be stored as the formula for the current
901 column, evaluated and the current field replaced with the result. If
902 the field contains only @samp{=}, the previously stored formula for
903 this column is used.
904
905 For each column, Org-mode will remember the most recently used
906 formula. The information is stored in a special line starting with
907 @samp{#+TBLFM} directly below the table. When adding/deleting/moving
908 columns with the appropriate commands, the stored equations will be
909 modified accordingly. When a column used in a calculation is removed,
910 references to this column become invalid and will cause an error upon
911 applying the equation.
912
913 Instead of typing an equation into the field, you may also use the
914 command @kbd{C-c =}. It prompts for a formula (with default taken
915 from the @samp{#+TBLFM:} line) and applies it to the current field. A
916 numerical prefix (e.g. @kbd{C-5 C-c =}) will apply it to that many
917 subsequent fields in the current column.
918
919 To recompute all the fields in a line, use the command @kbd{C-c *}.
920 It re-applies all stored equations to the current row, from left to
921 right. With a @kbd{C-u} prefix, this will be done to every line in
922 the table, so use this command it you want to make sure the entire
923 table is up-to-date. @kbd{C-u C-c C-c} is another way to update the
924 entire table. Global updating does not touch the line(s) above the
925 first horizontal separator line, assuming that this is the table
926 header.
927
928 @node Advanced features, Named-field formulas, Column formulas, Table calculations
929 @subsection Advanced features
930
931 If you want want the recalculation of fields to happen automatically,
932 or if you want to be able to assign a formula to an individual field
933 (instead of an entire column) you need to reserve the first column of
934 the table for special marking characters. Here is an example of a
935 table that collects exam results of students and makes use of these
936 features:
937 @example
938 @group
939 |---+---------+--------+--------+--------+-------+------|
940 | | Student | Prob 1 | Prob 2 | Prob 3 | Total | Note |
941 |---+---------+--------+--------+--------+-------+------|
942 | ! | | P1 | P2 | P3 | Tot | |
943 | # | Maximum | 10 | 15 | 25 | 50 | 10.0 |
944 | ^ | | m1 | m2 | m3 | mt | |
945 |---+---------+--------+--------+--------+-------+------|
946 | # | Peter | 10 | 8 | 23 | 41 | 8.2 |
947 | # | Sara | 6 | 14 | 19 | 39 | 7.8 |
948 | # | Sam | 2 | 4 | 3 | 9 | 1.8 |
949 |---+---------+--------+--------+--------+-------+------|
950 | | Average | | | | 29.7 | |
951 | ^ | | | | | at | |
952 | $ | max=50 | | | | | |
953 |---+---------+--------+--------+--------+-------+------|
954 #+TBLFM: $6=vsum($P1..$P3)::$7=10*$Tot/$max;%.1f::$at=vmean(&II);%.1f
955 @end group
956 @end example
957
958 @noindent @b{Important}: Please note that for these special tables,
959 recalculating the table with @kbd{C-u C-c *} does only affect rows
960 which are marked @samp{#} or @samp{*}, and named fields. The column
961 formulas are not applied in rows with empty first field.
962
963 The marking characters have the following meaning:
964 @table @samp
965 @item !
966 The fields in this line define names for the columns, so that you may
967 refer to a column as @samp{$Tot} instead of @samp{$6}.
968 @item ^
969 This row define names for the fields @emph{above} the row. With such
970 a definition, any formula in the table may use @samp{$m1} to refer to
971 the value @samp{10}. Also, named fields can have their own formula
972 associated with them.
973 @item _
974 Similar to @samp{^}, but defines names for the fields in the row
975 @emph{below}.
976 @item $
977 Fields in this row can define @emph{parameters} for formulas. For
978 example, if a field in a @samp{$} row contains @samp{max=50}, then
979 formulas in this table can refer to the value 50 using @samp{$max}.
980 Parameters work exactly like constants, only that they can be defined on
981 a per-table basis. Changing a parameter and then recalculating the
982 table can be useful.
983 @item #
984 Fields in this row are automatically recalculated when pressing
985 @key{TAB} or @key{RET} or @kbd{S-@key{TAB}} in this row. Also, this row
986 is selected for a global recalculation with @kbd{C-u C-c *}. Unmarked
987 lines will be left alone by this command.
988 @item *
989 Selects this line for global recalculation with @kbd{C-u C-c *}, but
990 not for automatic recalculation. Use this when automatic
991 recalculation slows down editing too much.
992 @item
993 Unmarked lines are exempted from recalculation with @kbd{C-u C-c *}.
994 All lines that should be recalculated should be marked with @samp{#}
995 or @samp{*}.
996 @end table
997
998 @node Named-field formulas, Editing/debugging formulas, Advanced features, Table calculations
999 @subsection Named-field formulas
1000
1001 A named field can have its own formula associated with it. In the
1002 example above, this is used for the @samp{at} field that contains
1003 the average result of the students. To enter a formula for a named
1004 field, just type it onto the buffer, preceded by @samp{:=}. Or use
1005 @kbd{C-u C-c =}. This equation will be stored below the table like
1006 @samp{$name=...}. Any recalculation in the table (even if only
1007 requested for the current line) will also update all named field
1008 formulas.
1009
1010 @node Editing/debugging formulas, Appetizer, Named-field formulas, Table calculations
1011 @subsection Editing and debugging formulas
1012
1013 To edit a column or field formula, you can use the commands @kbd{C-c
1014 =} and @kbd{C-u C-c =}, respectively. The currently active expression
1015 is then presented as default in the minibuffer, were it may be edited.
1016
1017 Note that making a table field blank does not remove the formula
1018 associated with the field - during the next recalculation the field
1019 will be filled again. To remove a formula from a field, you have to
1020 give an empty reply when prompted for the formula, or to edit the
1021 @samp{#+TBLFM} line.
1022
1023 @kindex C-c C-c
1024 You may edit the @samp{#+TBLFM} directly and re-apply
1025 the changed equations with @kbd{C-c C-c} in that line, or with the
1026 normal recalculation commands in the table.
1027
1028 @kindex C-c '
1029 @kindex C-c C-c
1030 @kindex C-c C-q
1031 @kindex C-c ?
1032 In particular for large tables with many formulas, it is convenient to
1033 use the command @kbd{C-c '} to edit the formulas of the current table
1034 in a separate buffer. That buffer will show the formulas one per
1035 line, and you are free to edit, add and remove formulas. Press
1036 @kbd{C-c ?} on a @samp{$...} expression to get information about its
1037 interpretation. Exiting the buffer with @kbd{C-c C-c} only stores the
1038 modified formulas below the table. Exiting with @kbd{C-u C-c C-c}
1039 also applies them to the entire table. @kbd{C-c C-q} exits without
1040 installing the changes.
1041
1042 When the evaluation of a formula leads to an error, the field content
1043 becomes the string @samp{#ERROR}. If you would like see what is going
1044 on during variable substitution and calculation in order to find a
1045 bug, turn on formula debugging in the menu and repeat the calculation
1046 by pressing, for example by pressing @kbd{C-c = @key{RET}} in a field.
1047 Detailed information will be displayed.
1048
1049 @node Appetizer, , Editing/debugging formulas, Table calculations
1050 @subsection Appetizer
1051
1052 Finally, just to wet your appetite on what can be done with the fantastic
1053 @file{calc} package, here is a table that computes the Taylor series
1054 for a couple of functions (homework: try that with Excel :-)
1055
1056 @example
1057 @group
1058 |---+-------------+---+-----+--------------------------------------|
1059 | | Func | n | x | Result |
1060 |---+-------------+---+-----+--------------------------------------|
1061 | # | exp(x) | 1 | x | 1 + x |
1062 | # | exp(x) | 2 | x | 1 + x + x^2 / 2 |
1063 | # | exp(x) | 3 | x | 1 + x + x^2 / 2 + x^3 / 6 |
1064 | # | x^2+sqrt(x) | 2 | x=0 | x*(0.5 / 0) + x^2 (2 - 0.25 / 0) / 2 |
1065 | # | x^2+sqrt(x) | 2 | x=1 | 2 + 2.5 x - 2.5 + 0.875 (x - 1)^2 |
1066 | * | tan(x) | 3 | x | 0.0175 x + 1.77e-6 x^3 |
1067 |---+-------------+---+-----+--------------------------------------|
1068 #+TBLFM: $5=taylor($2,$4,$3);n3
1069 @end group
1070 @end example
1071
1072 @node orgtbl-mode, table.el, Table calculations, Tables
1073 @section The Orgtbl minor mode
1074 @cindex orgtbl-mode
1075 @cindex minor mode for tables
1076
1077 If you like the intuitive way the Org-mode table editor works, you
1078 might want to use it also in other modes like text-mode or mail-mode.
1079 The minor mode Orgtbl-mode makes this possible. You can always toggle
1080 the mode with @kbd{M-x orgtbl-mode}. To turn it on by default, for
1081 example in mail mode, use
1082 @lisp
1083 (add-hook 'mail-mode-hook 'turn-on-orgtbl)
1084 @end lisp
1085
1086 @node table.el, , orgtbl-mode, Tables
1087 @section The @file{table.el} package
1088 @kindex C-c C-c
1089 @cindex table editor, @file{table.el}
1090 @cindex @file{table.el}
1091
1092 Complex ASCII tables with automatic line wrapping, column- and
1093 row-spanning, and alignment can be created using the Emacs table
1094 package by Takaaki Ota (@uref{http://sourceforge.net/projects/table}).
1095 When @key{TAB} or @kbd{C-c C-c} is pressed in such a table, Org-mode
1096 will call @command{table-recognize-table} and move the cursor into the
1097 table. Inside a table, the keymap of Org-mode is inactive. In order
1098 to execute Org-mode-related commands, leave the table.
1099
1100 @table @kbd
1101 @kindex C-c C-c
1102 @item C-c C-c
1103 Recognize @file{table.el} table. Works when the cursor is in a
1104 table.el table.
1105
1106 @kindex C-c ~
1107 @item C-c ~
1108 Insert a table.el table. If there is already a table at point, this
1109 command converts it between the table.el format and the Org-mode
1110 format. See the documentation string of the command
1111 @code{org-convert-table} for the restrictions under which this is
1112 possible.
1113 @end table
1114
1115 @node Hyperlinks, TODO items, Tables, Top
1116 @chapter Hyperlinks
1117 @cindex hyperlinks
1118
1119 Just like HMTL, Org-mode provides links to other files, Usenet
1120 articles, emails and much more.
1121
1122 @menu
1123 * Links:: URL-like links to the world
1124 * Remember:: Org-trees store quick notes
1125 @end menu
1126
1127 @node Links, Remember, Hyperlinks, Hyperlinks
1128 @section Links
1129 @cindex links
1130 @cindex GNUS links
1131 @cindex BBDB links
1132 @cindex URL links
1133 @cindex file links
1134 @cindex VM links
1135 @cindex RMAIL links
1136 @cindex WANDERLUST links
1137 @cindex USENET links
1138 @cindex SHELL links
1139
1140 Org-mode supports links to files, websites, Usenet and email messages;
1141 and BBDB database entries. Links are just plain-text URL-like
1142 locators, optionally enclosed by angular brackets. The following list
1143 shows examples for each link type.
1144
1145 @example
1146 <http://www.astro.uva.nl/~dominik> @r{on the web}
1147 <file:/home/dominik/images/jupiter.jpg> @r{file, absolute path}
1148 <file:papers/last.pdf> @r{file, relative path}
1149 <file:~/code/main.c:255> @r{file, with line number}
1150 <news:comp.emacs> @r{Usenet link}
1151 <mailto:adent@@galaxy.net> @r{Mail link}
1152 <vm:folder> @r{VM folder link}
1153 <vm:folder#id> @r{VM message link}
1154 <vm://myself@@some.where.org/folder#id> @r{VM on remote machine}
1155 <wl:folder> @r{WANDERLUST folder link}
1156 <wl:folder#id> @r{WANDERLUST message link}
1157 <rmail:folder> @r{RMAIL folder link}
1158 <rmail:folder#id> @r{RMAIL message link}
1159 <gnus:group> @r{GNUS group link}
1160 <gnus:group#id> @r{GNUS article link}
1161 <bbdb:Richard Stallman> @r{BBDB link}
1162 <shell:ls *.org>@footnote{Note that @samp{<} and @samp{>} cannot be part of a link, and therefore of a shell command. If you need redirection, use @@@{ and @@@} instead.} @r{A shell command}
1163 @end example
1164
1165 A link may contain space characters and is terminated by @samp{>} or by
1166 the end of a line. In tables, the end of a table field also terminates
1167 a link. Angle brackets around a link are not required, but are
1168 recommended to avoid problems with punctuation and other text following
1169 the link. See also the variable @code{org-allow-space-in-links}.
1170
1171 @cindex storing links
1172 @table @kbd
1173 @kindex C-c l
1174 @item C-c l
1175 Store a link to the current location. This is a @emph{global} command
1176 which can be used in any buffer to create a link. The link will be
1177 stored for later insertion into an Org-mode buffer (see below). For VM,
1178 RMAIL, WANDERLUST, GNUS and BBDB buffers, the link will point to the
1179 current article/entry. For W3 and W3M buffer, the link goes to the
1180 current URL. For any other files, the link will just point to the file.
1181 The key binding @kbd{C-c l} is only a suggestion - see
1182 @ref{Installation and Activation}.
1183
1184 @kindex C-c C-l
1185 @cindex completion, of links
1186 @cindex completion, of file names
1187 @item C-c C-l
1188 Insert a link. This prompts for a link to be inserted into the
1189 buffer. You can just type a link, using one of the link type prefixes
1190 mentioned in the examples above. Through completion, all links stored
1191 during the current session can be accessed. When called with prefix
1192 arg, you can use file name completion to enter a file link. The link
1193 will be formatted as given in the variable @code{org-link-format} and
1194 inserted into the buffer. Note that you don't have to use this
1195 command to insert a link. Links in Org-mode are plain text, and you
1196 can type or paste them straight into the buffer.
1197
1198 @cindex inserting links
1199 @kindex C-c C-o
1200 @item C-c C-o
1201 Open link at point. This will launch a web browser for URLs (using
1202 @command{browse-url-at-point}), run vm/gnus/bbdb for the corresponding
1203 links, execute the command in a shell link, visit text files with
1204 Emacs and select a suitable application for non-text files.
1205 Classification of files is based on file extension only. See option
1206 @code{org-file-apps}. If there is no link at point, the current
1207 subtree will be searched for one. If you want to override the default
1208 application and visit the file with Emacs, use a @kbd{C-u} prefix.
1209 If the cursor is on a time stamp, compiles the agenda for that date.
1210
1211 @strong{IMPORTANT}: Be careful not to use any dangerous commands in a
1212 shell link.
1213
1214 @kindex mouse-2
1215 @item mouse-2
1216 On links, @kbd{mouse-2} will open the link just like @kbd{C-c C-o} would.
1217
1218 @kindex mouse-3
1219 @item mouse-3
1220 Like @kbd{mouse-2}, but force file links to be opened with Emacs.
1221 @end table
1222
1223 @node Remember, , Links, Hyperlinks
1224 @section Remember
1225 @cindex @file{remember.el}
1226
1227 Another way to create org entries with links to other files is through
1228 the @emph{Remember} package by John Wiegley. @emph{Remember} lets you
1229 store quick notes with little interruption of your work flow. See
1230 @uref{http://www.emacswiki.org/cgi-bin/wiki/RememberMode} for more
1231 information. The notes produced by @emph{Remember} can be stored in
1232 different ways, and Org-mode files are a good target. Org-mode allows
1233 to file away notes either to a default file, or directly to the
1234 correct location in your Org-mode outline tree. The following
1235 customization@footnote{The two autoload forms are only necessary if
1236 @file{org.el} is not part of the Emacs distribution or and XEmacs
1237 package.} will tell @emph{Remember} to use org files as target, and to
1238 create annotations compatible with Org-mode links.
1239
1240 @example
1241 (autoload 'org-remember-annotation "org")
1242 (autoload 'org-remember-handler "org")
1243 (setq org-directory "~/path/to/my/orgfiles/")
1244 (setq org-default-notes-file "~/.notes")
1245 (setq remember-annotation-functions '(org-remember-annotation))
1246 (setq remember-handler-functions '(org-remember-handler))
1247 @end example
1248
1249 When you compose a note with remember, you have to press @kbd{C-c C-c}
1250 to exit remember-mode and to file away the note. The handler first
1251 prompts for a target file - if you press @key{RET}, the value of
1252 @code{org-default-notes-file} is used. Then the command offers the
1253 headings tree of the selected file. You can either immediately press
1254 @key{RET} to get the note appended to the file. Or you can use
1255 vertical cursor motion (@key{up} and @key{down}) and visibility
1256 cycling (@key{TAB}) to find a better place. Pressing @key{RET} or
1257 @key{left} or @key{right} leads to the following result.
1258
1259 @multitable @columnfractions 0.2 0.1 0.7
1260 @item @b{Cursor position} @tab @b{Key} @tab @b{Note gets inserted}
1261 @item buffer-start @tab @key{RET} @tab as level 2 heading at end of file
1262 @item on headline @tab @key{RET} @tab as sublevel of the heading at cursor
1263 @item @tab @key{left} @tab as same level, before current heading
1264 @item @tab @key{right} @tab as same level, after current heading
1265 @item not on headline @tab @key{RET}
1266 @tab at cursor position, level taken from context.
1267 Or use prefix arg to specify level manually.
1268 @end multitable
1269
1270 So a fast way to store the note is to press @kbd{C-c C-c @key{RET}
1271 @key{RET}} to append it to the default file. Even shorter would be
1272 @kbd{C-u C-c C-c}, which does the same without even showing the tree.
1273 But with little extra effort, you can push it directly to the correct
1274 location.
1275
1276 Before inserting the text into a tree, the function ensures that the
1277 text has a headline, i.e. a first line that starts with a @samp{*}.
1278 If not, a headline is constructed from the current date and some
1279 additional data. If the variable @code{org-adapt-indentation} is
1280 non-nil, the entire text is also indented so that it starts in the
1281 same column as the headline (after the asterisks).
1282
1283 @node TODO items, Timestamps, Hyperlinks, Top
1284 @chapter TODO items
1285 @cindex TODO items
1286
1287 Org-mode does not maintain TODO lists as a separate document. TODO
1288 items are an integral part of the notes file, because TODO items
1289 usually come up while taking notes! With Org-mode, you simply mark
1290 any entry in a tree as being a TODO item. In this way, the
1291 information is not duplicated, and the entire context from which the
1292 item emerged is always present when you check.
1293
1294 Of course, this technique causes TODO items to be scattered throughout
1295 your file. Org-mode provides methods to give you an overview over all
1296 things you have to do.
1297
1298 @menu
1299 * TODO basics:: Marking and displaying TODO entries
1300 * TODO extensions:: Workflow and assignments
1301 * Priorities:: Some things are more important than others
1302 @end menu
1303
1304 @node TODO basics, TODO extensions, TODO items, TODO items
1305 @section Basic TODO functionality
1306
1307 Any headline can become a TODO item by starting it with the word TODO,
1308 for example
1309
1310 @example
1311 *** TODO Write letter to Sam Fortune
1312 @end example
1313
1314 @noindent
1315 The most important commands to work with TODO entries are:
1316
1317 @table @kbd
1318 @kindex C-c C-t
1319 @item C-c C-t
1320 Rotate the TODO state of the current item between
1321 @example
1322 ,-> (unmarked) -> TODO -> DONE --.
1323 '--------------------------------'
1324 @end example
1325 The same rotation can also be done ``remotely'' from the timeline and
1326 agenda buffers with the @kbd{t} command key (@pxref{Agenda commands}).
1327 @kindex C-c C-v
1328 @cindex sparse tree, for TODO
1329 @item C-c C-v
1330 View TODO items in a @emph{sparse tree} (@pxref{Sparse trees}). Folds
1331 the entire buffer, but shows all TODO items and the headings hierarchy
1332 above them. With prefix arg, show also the DONE entries.
1333 @item C-u C-c a
1334 A @kbd{C-u} argument to the @code{org-agenda command} (@pxref{Agenda})
1335 collects all unfinished TODO items into a single place.
1336 @end table
1337
1338 @node TODO extensions, Priorities, TODO basics, TODO items
1339 @section Extended use of TODO keywords
1340 @cindex extended TODO keywords
1341
1342 The default implementation of TODO entries is just two states: TODO
1343 and DONE. You can, however, use the TODO feature for more
1344 complicated things by configuring the variables
1345 @code{org-todo-keywords} and @code{org-todo-interpretation}. Using
1346 special setup, you can even use TODO keywords in different ways in
1347 different org files.
1348
1349 @menu
1350 * Workflow states:: From TODO to DONE in steps
1351 * TODO types:: I do this, Fred the rest
1352 * Per file keywords:: Different files, different requirements
1353 @end menu
1354
1355 @node Workflow states, TODO types, TODO extensions, TODO extensions
1356 @subsection TODO keywords as workflow states
1357 @cindex TODO workflow
1358 @cindex workflow states as TODO keywords
1359
1360 You can use TODO keywords to indicate different states in the process
1361 of working on an item, for example
1362
1363 @lisp
1364 (setq org-todo-keywords '("TODO" "FEEDBACK" "VERIFY" "DONE")
1365 org-todo-interpretation 'sequence)
1366 @end lisp
1367
1368 @cindex completion, of TODO keywords
1369 Changing these variables becomes only effective in a new Emacs session.
1370 With this setup, the command @kbd{C-c C-t} will cycle an entry from
1371 TODO to FEEDBACK, then to VERIFY, and finally to DONE. You may also
1372 use a prefix argument to quickly select a specific state. For example
1373 @kbd{C-3 C-c C-t} will change the state immediately to VERIFY.
1374 If you define many keywords, you can use in-buffer completion (see
1375 @ref{Completion}) to insert these words into the buffer.
1376
1377 @node TODO types, Per file keywords, Workflow states, TODO extensions
1378 @subsection TODO keywords as types
1379 @cindex TODO types
1380 @cindex names as TODO keywords
1381 @cindex types as TODO keywords
1382
1383 The second possibility is to use TODO keywords to indicate different
1384 types of action items. For example, you might want to indicate that
1385 items are for ``work'' or ``home''. Or, when you work with several
1386 people on a single project, you might want to assign action items
1387 directly to persons, by using their names as TODO keywords. This
1388 would be set up like this:
1389
1390 @lisp
1391 (setq org-todo-keywords '("Fred" "Sara" "Lucy" "Mike" "DONE")
1392 org-todo-interpretation 'type)
1393 @end lisp
1394
1395 In this case, different keywords do not indicate a sequence, but
1396 rather different types. So it is normally not useful to change from
1397 one type to another. Therefore, in this case the behavior of the
1398 command @kbd{C-c C-t} is changed slightly@footnote{This is also true
1399 for the @kbd{t} command in the timeline and agenda buffers.}. When
1400 used several times in succession, it will still cycle through all
1401 names. But when you return to the item after some time and
1402 execute @kbd{C-c C-t} again, it will switch from each name directly to
1403 DONE. Use prefix arguments or completion to quickly select a specific
1404 name.
1405
1406 @node Per file keywords, , TODO types, TODO extensions
1407 @subsection Setting up TODO keywords for individual files
1408 @cindex keyword options
1409 @cindex per file keywords
1410
1411 It can be very useful to use different aspects of the TODO mechanism
1412 in different files, which is not possible with the global settings
1413 described above. For file-local settings, you need to add special
1414 lines to the file which set the keywords and interpretation for that
1415 file only. For example, to set one of the two examples discussed
1416 above, you need one of the following lines, starting in column zero
1417 anywhere in the file:
1418
1419 @example
1420 #+SEQ_TODO: TODO FEEDBACK VERIFY DONE
1421 #+TYP_TODO: Fred Sara Lucy Mike DONE
1422 @end example
1423
1424 @cindex Completion, of option keywords
1425 @kindex M-@key{TAB}
1426 @noindent To make sure you are using the correct keyword, type
1427 @samp{#+} into the buffer and then use @kbd{M-@key{TAB}} completion.
1428
1429 @cindex DONE, final TODO keyword
1430 Remember that the last keyword must always mean that the item is DONE
1431 (you may use a different word, though). Also note that in each file,
1432 only one of the two aspects of TODO keywords can be used. After
1433 changing one of these lines, use @kbd{C-c C-c} with the cursor still
1434 in the line to make the changes known to Org-mode@footnote{Org-mode
1435 parses these lines only when Org-mode is activated after visiting a
1436 file. @kbd{C-c C-c} with the cursor in a line starting with @samp{#+}
1437 is simply restarting Org-mode, making sure that these changes will be
1438 respected.}.
1439
1440 If you want to use very many keywords, for example when working with a
1441 large group of people, you may split the names over several lines:
1442
1443 @example
1444 #+TYP_TODO: Fred Sara Lucy Mike
1445 #+TYP_TODO: Luis George Jules Jessica
1446 #+TYP_TODO: Kim Arnold Peter
1447 #+TYP_TODO: DONE
1448 @end example
1449
1450 @node Priorities, , TODO extensions, TODO items
1451 @section Priorities
1452 @cindex priorities
1453
1454 If you use Org-mode extensively to organize your work, you may end up
1455 with a number of TODO entries so large that you'd like to prioritize
1456 them. This can be done by placing a @emph{priority cookie} into the
1457 headline, like this
1458
1459 @example
1460 *** TODO [#A] Write letter to Sam Fortune
1461 @end example
1462
1463 @noindent
1464 With its standard setup, Org-mode supports priorities @samp{A},
1465 @samp{B}, and @samp{C}. @samp{A} is the highest priority. An entry
1466 without a cookie is treated as priority @samp{B}. Priorities make a
1467 difference only in the agenda (@pxref{Agenda}).
1468
1469 @table @kbd
1470 @kindex @kbd{C-c ,}
1471 @item @kbd{C-c ,}
1472 Set the priority of the current item. The command prompts for a
1473 priority character @samp{A}, @samp{B} or @samp{C}. When you press
1474 @key{SPC} instead, the priority cookie is removed from the headline.
1475 The priorities can also be changed ``remotely'' from the timeline and
1476 agenda buffer with the @kbd{,} command (@pxref{Agenda commands}).
1477
1478 @kindex S-@key{up}
1479 @kindex S-@key{down}
1480 @item S-@key{up}
1481 @itemx S-@key{down}
1482 Increase/decrease priority of current item. Note that these keys are
1483 also used to modify time stamps (@pxref{Creating timestamps}).
1484 Furthermore, these keys are also used by CUA-mode
1485 (@pxref{Interaction}).
1486 @end table
1487
1488
1489
1490 @node Timestamps, Timeline and Agenda, TODO items, Top
1491 @chapter Timestamps
1492
1493 Items can be labeled with timestamps to make them useful for project
1494 planning.
1495
1496 @menu
1497 * Time stamps:: Assigning a time to a tree entry
1498 * Creating timestamps:: Commands which insert timestamps
1499 @end menu
1500
1501
1502 @node Time stamps, Creating timestamps, Timestamps, Timestamps
1503 @section Time stamps, deadlines and scheduling
1504 @cindex time stamps
1505 @cindex deadlines
1506 @cindex scheduling
1507
1508 A time stamp is a specification of a date (possibly with time) in a
1509 special format, either @samp{<2003-09-16 Tue>} or @samp{<2003-09-16
1510 Tue 09:39>}. A time stamp can appear anywhere in the headline or body
1511 of an org-tree entry. Its presence allows to show entries on specific
1512 dates in the agenda (@pxref{Agenda}). We distinguish:
1513
1514 @table @var
1515 @cindex timestamp
1516 @item TIMESTAMP
1517 A simple time stamp just assigns a date/time to an item. In the
1518 timeline and agenda displays, the headline of the entry will be shown
1519 exactly on that date.
1520
1521 @item TIMERANGE
1522 @cindex timerange
1523 Two time stamps connected by @samp{--} denote a time range. The
1524 headline will be shown on the first and last day of the range, and on
1525 any dates that are displayed and fall in the range. Here is an
1526 example:
1527
1528 @example
1529 ** Meeting in Amsterdam
1530 <2004-08-23 Mon>--<2004-08-26 Thu>
1531 @end example
1532
1533 @item DEADLINE
1534 @cindex DEADLINE keyword
1535 If a time stamp is preceded by the word @samp{DEADLINE:}, the task
1536 (most likely a TODO item) is supposed to be finished on that date, and
1537 it will be listed then. In addition, the compilation for @emph{today}
1538 will carry a warning about the approaching or missed deadline,
1539 starting @code{org-deadline-warning-days} before the due date, and
1540 continuing until the entry is marked DONE. An example:
1541
1542 @example
1543 *** TODO write article about the Earth for the Guide
1544 The editor in charge is <bbdb:Ford Prefect>
1545 DEADLINE: <2004-02-29 Sun>
1546 @end example
1547
1548 @item SCHEDULED
1549 @cindex SCHEDULED keyword
1550 If a time stamp is preceded by the word @samp{SCHEDULED:}, it means
1551 you are planning to start working on that task on the given date. The
1552 headline will be listed under the given date. In addition, a reminder
1553 that the scheduled date has passed will be present in the compilation
1554 for @emph{today}, until the entry is marked DONE. I.e., the
1555 task will automatically be forwarded.
1556 @end table
1557
1558 @node Creating timestamps, , Time stamps, Timestamps
1559 @section Creating timestamps
1560 @cindex creating timestamps
1561
1562 For Org-mode to recognize time stamps, they need to be in the specific
1563 format. All commands listed below produce time stamps in the correct
1564 format.
1565
1566 @table @kbd
1567 @kindex C-c .
1568 @item C-c .
1569 Prompt for a date and insert a corresponding time stamp. When the
1570 cursor is at a previously used time stamp, it is updated to NOW. When
1571 this command is used twice in succession, a time range is inserted.
1572
1573 @kindex C-u C-c .
1574 @item C-u C-c .
1575 Like @kbd{C-c .}, but use the alternative format which contains date
1576 and time.
1577
1578 @kindex C-c !
1579 @item C-c !
1580 Like @kbd{C-c .}, but insert an inactive time stamp not triggering the
1581 agenda.
1582
1583 @kindex C-c <
1584 @item C-c <
1585 Insert a time stamp corresponding to the cursor date in the Calendar.
1586
1587 @kindex C-c >
1588 @item C-c >
1589 Access the Emacs calendar for the current date. If there is a
1590 timestamp in the current line, goto the corresponding date
1591 instead.
1592
1593 @kindex C-c C-o
1594 @item C-c C-o
1595 Access the agenda for the date given by the time stamp at point
1596 (@pxref{Agenda}).
1597
1598 @kindex C-c C-d
1599 @item C-c C-d
1600 Insert @samp{DEADLINE} keyword along with a stamp.
1601 @kindex C-c C-w
1602 @cindex sparse tree, for deadlines
1603 @item C-c C-w
1604 Create a sparse tree with all deadlines that are either past-due, or
1605 which will become due within @code{org-deadline-warning-days}.
1606 With @kbd{C-u} prefix, show all deadlines in the file. With a numeric
1607 prefix, check that many days. For example, @kbd{C-1 C-c C-w} shows
1608 all deadlines due tomorrow.
1609
1610 @kindex C-c C-s
1611 @item C-c C-s
1612 Insert @samp{SCHEDULED} keyword along with a stamp.
1613
1614 @kindex S-@key{left}
1615 @kindex S-@key{right}
1616 @item S-@key{left}
1617 @itemx S-@key{right}
1618 Change date at cursor by one day. These key bindings conflict with
1619 CUA-mode (@pxref{Interaction}).
1620
1621 @kindex S-@key{up}
1622 @kindex S-@key{down}
1623 @item S-@key{up}
1624 @itemx S-@key{down}
1625 Change the item under the cursor in a timestamp. The cursor can be on
1626 a year, month, day, hour or minute. Note that if the cursor is not at
1627 a time stamp, these same keys modify the priority of an item.
1628 (@pxref{Priorities}). The key bindings also conflict with CUA-mode
1629 (@pxref{Interaction}).
1630
1631
1632 @kindex C-c C-y
1633 @cindex evaluate time range
1634 @item C-c C-y
1635 Evaluate a time range by computing the difference between start and
1636 end. With prefix arg, insert result after the time range (in a table:
1637 into the following column).
1638 @end table
1639
1640 @cindex date, reading in minibuffer
1641 @cindex time, reading in minibuffer
1642 @cindex calendar, for selecting date
1643 When Org-mode prompts for a date/time, the function reading your input
1644 will replace anything you choose not to specify with the current date
1645 and time. For details, see the documentation string of
1646 @command{org-read-date}. Also, a calender will pop up to allow
1647 selecting a date. The calendar can be fully controlled from the
1648 minibuffer, and a date can be selected with the following commands:
1649
1650 @table @kbd
1651 @kindex <
1652 @item <
1653 Scroll calendar backwards by one month.
1654 @kindex >
1655 @item >
1656 Scroll calendar forwards by one month.
1657 @kindex mouse-1
1658 @item mouse-1
1659 Select date by clicking on it.
1660 @kindex S-@key{right}
1661 @item S-@key{right}
1662 One day forward.
1663 @kindex S-@key{left}
1664 @item S-@key{left}
1665 One day back.
1666 @kindex S-@key{down}
1667 @item S-@key{down}
1668 One week forward.
1669 @kindex S-@key{up}
1670 @item S-@key{up}
1671 One week back.
1672 @kindex M-S-@key{right}
1673 @item M-S-@key{right}
1674 One month forward.
1675 @kindex M-S-@key{left}
1676 @item M-S-@key{left}
1677 One month back.
1678 @kindex @key{RET}
1679 @item @key{RET}
1680 Choose date in calendar (only if nothing typed into minibuffer).
1681 @end table
1682
1683 @node Timeline and Agenda, Exporting, Timestamps, Top
1684 @chapter Timeline and Agenda
1685 @cindex agenda
1686
1687 We have already described three commands to filter important
1688 information in an org file into a sparse tree (@pxref{Sparse trees}):
1689
1690 @cindex sparse trees
1691 @itemize @bullet
1692 @item
1693 The TODO tree, (@kbd{C-c C-v}), see @ref{TODO items}.
1694 @item
1695 The occur tree @kbd{C-c /}, see @ref{TODO items}.
1696 @item
1697 Checking upcoming deadlines with @kbd{C-c C-w}, see @ref{Creating
1698 timestamps}.
1699 @end itemize
1700 @noindent
1701
1702 Instead of using the sparse trees, Org-mode can also collect and
1703 time-sort the important items into a separate buffer, which we call
1704 the @emph{timeline} of the org file. It can also collect information
1705 from a @emph{list of files} and in this way provide an @emph{agenda}
1706 which covers all of your current projects, action items and
1707 appointments.
1708
1709 @menu
1710 * Timeline:: Time-sorted view for single file
1711 * Agenda:: Your weekly planner
1712 * Agenda commands:: Remote editing of org trees
1713 * Calendar/Diary integration:: Integrating Anniversaries and more
1714 @end menu
1715
1716 @node Timeline, Agenda, Timeline and Agenda, Timeline and Agenda
1717 @section Timeline for a single file
1718 @cindex single file summary
1719 @cindex agenda, for single file
1720 @cindex timeline, single file
1721 @cindex time-sorted view
1722
1723 The timeline shows all time-stamped items in a single Org-mode file,
1724 in @emph{time-sorted view}. The main purpose of this command is to
1725 give an overview over events in a project.
1726
1727 @table @kbd
1728 @kindex C-c C-r
1729 @item C-c C-r
1730 Show a time-sorted view of the org file, with all time-stamped items
1731 of today or later. When called with a @kbd{C-u} prefix, past dates
1732 will be included as well. When called with two @kbd{C-u C-u}
1733 prefixes, all unfinished TODO entries (scheduled or not) are also
1734 listed under the current date.
1735 @end table
1736 @noindent
1737
1738 The timeline is shown in a temporary buffer @file{*Org Agenda*}. The
1739 commands available in the Agenda buffer are listed in @ref{Agenda
1740 commands}.
1741
1742 @node Agenda, Agenda commands, Timeline, Timeline and Agenda
1743 @section Agenda
1744 @cindex agenda
1745
1746 An agenda can be compiled from one or more org files. The main
1747 purpose of this command is to act like a paper agenda, showing you all
1748 the tasks for the current day or week.
1749
1750 The Org-mode files to be processed in order to generate the agenda are
1751 listed in the variable @code{org-agenda-files}. You can customize
1752 this variable, but the easiest way to maintain it is through the
1753 following commands
1754
1755 @cindex files, adding to agenda list
1756 @table @kbd
1757 @kindex C-c [
1758 @item C-c [
1759 Add current file to the list of agenda files
1760 @kindex C-c ]
1761 @item C-c ]
1762 Remove current file from the list of agenda files.
1763 @end table
1764 @noindent
1765 The Org menu contains the list of all files and can be used to quickly
1766 visit any of them.
1767
1768 The global command @command{org-agenda} compiles the agenda from all
1769 listed files.
1770
1771 @table @kbd
1772 @cindex org-agenda, command
1773 @kindex C-c a
1774 @item C-c a
1775 Compile an agenda for the current week from a list of org files. The
1776 agenda shows the entries for each day. With a @kbd{C-u} prefix (or
1777 when the variable @code{org-agenda-include-all-todo} is @code{t}), all
1778 unfinished TODO items (also those without a date) are also listed at
1779 the beginning of the buffer, before the first date.@*
1780 The key binding @kbd{C-c a} is only a suggestion - see
1781 @ref{Installation and Activation}.
1782 @end table
1783
1784 The commands available in the Agenda buffer are listed in
1785 @ref{Agenda commands}.
1786
1787 @subsection Categories
1788
1789 @cindex category
1790 In the agenda buffer, each entry is preceded by a @emph{category},
1791 which is derived from the file name. The category can also be set
1792 with a special line anywhere in the buffer, looking like this:
1793 @example
1794 #+CATEGORY: Thesis
1795 @end example
1796 @noindent
1797 After changing this line, press @kbd{C-c C-c} with the cursor still in
1798 the line, to make the changes known to org-mode. Otherwise, the
1799 change will only be active the next time you visit this file with
1800 Emacs.
1801
1802 The display in the agenda buffer looks best if the category is not
1803 longer than 10 characters.
1804
1805 @subsection Time-of-Day Specifications
1806
1807 Org-mode checks each agenda item for a time-of-day specification. The
1808 time can be part of the time stamp that triggered inclusion into the
1809 agenda, for example as in @w{@samp{<2005-05-10 Tue 19:00>}}. Time
1810 ranges can be specified with two time stamps, like
1811 @c
1812 @w{@samp{<2005-05-10 Tue 20:30>--<2005-05-10 Tue 22:15>}}.
1813
1814 In the headline of the entry itself, a time(range) may also appear as
1815 plain text (like @samp{12:45} or a @samp{8:30-1pm}. If the agenda
1816 integrates the Emacs diary (@pxref{Calendar/Diary integration}), time
1817 specifications in diary entries are recognized as well.
1818
1819 For agenda display, Org-mode extracts the time and displays it in a
1820 standard 24 hour format as part of the prefix. The example times in
1821 the previous paragraphs would end up in the agenda like this:
1822
1823 @example
1824 8:30-13:00 Arthur Dent lies in front of the bulldozer
1825 12:45...... Ford Prefect arrives and takes Arthur to the pub
1826 19:00...... The Vogon reads his poem
1827 20:30-22:15 Marwin escorts the Hitchhikers to the bridge
1828 @end example
1829
1830 If the agenda is in single-day mode, or for the display of today, the
1831 timed entries are embedded in a time grid, like
1832
1833 @example
1834 8:00...... ------------------
1835 8:30-13:00 Arthur Dent lies in front of the bulldozer
1836 10:00...... ------------------
1837 12:00...... ------------------
1838 12:45...... Ford Prefect arrives and takes Arthur to the pub
1839 14:00...... ------------------
1840 16:00...... ------------------
1841 18:00...... ------------------
1842 19:00...... The Vogon reads his poem
1843 20:00...... ------------------
1844 20:30-22:15 Marwin escorts the Hitchhikers to the bridge
1845 @end example
1846
1847 The time grid can be turned on and off with the variable
1848 @code{org-agenda-use-time-grid}, and can be configured with
1849 @code{org-agenda-time-grid}.
1850
1851
1852 @subsection Sorting of agenda items
1853 @cindex sorting, of agenda items
1854 @cindex priorities, of agenda items
1855 The entries for each day are sorted. The default order is to first
1856 collect all items containing an explicit time-of-day specification.
1857 These entries will be shown at the beginning of the list, as a
1858 @emph{schedule} for the day. After that, items remain grouped in
1859 categories, in the sequence given by @code{org-agenda-files}. Within
1860 each category, items are sorted by priority (@pxref{Priorities}).
1861
1862 The priority is a numerical quantity composed of the base priority
1863 (2000 for priority @samp{A}, 1000 for @samp{B}, and 0 for @samp{C}),
1864 plus additional increments for overdue scheduled or deadline items.
1865
1866 Sorting can be customized using the variable
1867 @code{org-agenda-sorting-strategy}.
1868
1869 @node Agenda commands, Calendar/Diary integration, Agenda, Timeline and Agenda
1870 @section Commands in the agenda buffer
1871
1872 Entries in the agenda buffer are linked back to the org file or diary
1873 file where they originate. You are not allowed to edit the agenda
1874 buffer itself, but commands are provided to show and jump to the
1875 original entry location, and to edit the org-files ``remotely'' from
1876 the agenda buffer. In this way, all information is stored only once,
1877 and you don't risk that your agenda and note files diverge.
1878
1879 Some commands can be executed with mouse clicks on agenda lines. For
1880 the other commands, the cursor needs to be in the desired line. Most
1881 commands are available for both timelines and the agenda. The
1882 exceptions are marked.
1883
1884 @table @kbd
1885 @tsubheading{Motion}
1886 @kindex n
1887 @item n
1888 Next line (same as @key{up}).
1889 @kindex p
1890 @item p
1891 Previous line (same as @key{down}).
1892 @tsubheading{View/GoTo org file}
1893 @kindex mouse-3
1894 @kindex @key{SPC}
1895 @item mouse-3
1896 @itemx @key{SPC}
1897 Display the original location of the item in another window.
1898
1899 @kindex l
1900 @item l
1901 Display original location and recenter that window.
1902
1903 @kindex mouse-2
1904 @kindex @key{TAB}
1905 @item mouse-2
1906 @itemx @key{TAB}
1907 Go to the original location of the item in another window.
1908
1909 @kindex @key{RET}
1910 @itemx @key{RET}
1911 Go to the original location of the item and delete other windows.
1912
1913 @kindex f
1914 @item f
1915 Toggle follow mode. In follow mode, as you move the cursor through
1916 the agenda buffer, the other window always shows the corresponding
1917 location in the org file.
1918
1919 @tsubheading{Change display}
1920 @kindex o
1921 @item o
1922 Delete other windows.
1923
1924 @kindex w
1925 @item w
1926 Switch to weekly view (7 days displayed together)
1927
1928 @kindex d
1929 @item d
1930 Switch to daily view (just one day displayed)
1931
1932 @kindex D
1933 @item D
1934 Toggle the inclusion of diary entries. See @ref{Calendar/Diary integration}.
1935
1936 @kindex g
1937 @item g
1938 Toggle the time grid on and off. See also the variables
1939 @code{org-agenda-use-time-grid} and @code{org-agenda-time-grid}.
1940
1941 @kindex r
1942 @item r
1943 Recreate the agenda buffer, for example to reflect the changes
1944 after modification of the time stamps of items with S-@key{left} and
1945 S-@key{right}.
1946
1947 @kindex @key{right}
1948 @item @key{right}
1949 Display the following @code{org-agenda-ndays} days. For example, if
1950 the display covers a week, switch to the following week. With prefix
1951 arg, go forward that many times @code{org-agenda-ndays} days. Not
1952 available in timelines.
1953
1954 @kindex @key{left}
1955 @item @key{left}
1956 Display the previous dates. Not available in timelines.
1957
1958 @kindex .
1959 @item .
1960 Goto today.
1961
1962 @tsubheading{Remote editing}
1963
1964 @item 0-9
1965 Digit argument.
1966
1967 @kindex t
1968 @item t
1969 Change the TODO state of the item, both in the agenda and in the
1970 original org file.
1971
1972 @kindex ,
1973 @item ,
1974 Set the priority for the current item. Org-mode prompts for the
1975 priority character. If you reply with @key{SPC}, the priority cookie
1976 is removed from the entry.
1977
1978 @kindex P
1979 @item p
1980 Display weighted priority of current item.
1981
1982 @kindex +
1983 @kindex S-@key{up}
1984 @item +
1985 @itemx S-@key{up}
1986 Increase the priority of the current item. The priority is changed in
1987 the original buffer, but the agenda is not resorted. Use the @kbd{r}
1988 key for this.
1989
1990 @kindex -
1991 @kindex S-@key{down}
1992 @item -
1993 @itemx S-@key{down}
1994 Decrease the priority of the current item.
1995
1996 @kindex S-@key{right}
1997 @item S-@key{right}
1998 Change the time stamp associated with the current line by one day into
1999 the future. With prefix argument, change it by that many days. For
2000 example, @kbd{3 6 5 S-@key{right}} will change it by a year. The
2001 stamp is changed in the original org file, but the change is not
2002 directly reflected in the agenda buffer. Use the
2003 @kbd{r} key to update the buffer.
2004
2005 @kindex S-@key{left}
2006 @item S-@key{left}
2007 Change the time stamp associated with the current line by one day
2008 into the past.
2009
2010 @kindex >
2011 @item >
2012 Change the time stamp associated with the current line to today.
2013 The key @kbd{>} has been chosen, because it is the same as @kbd{S-.}
2014 on my keyboard.
2015
2016 @cindex diary entries, creating from agenda
2017 @kindex i
2018 @item i
2019 Insert a new entry into the diary. Prompts for the type of entry
2020 (day, weekly, monthly, yearly, anniversary, cyclic) and creates a new
2021 entry in the diary, just like @kbd{i d} etc. would do in the calendar.
2022 The date is taken from the cursor position.
2023
2024 @tsubheading{Calendar commands}
2025 @kindex c
2026 @item c
2027 Open the Emacs calendar and move to the date at the agenda cursor.
2028
2029 @item c
2030 When in the calendar, compute and show the Org-mode agenda for the
2031 date at the cursor.
2032
2033 @kindex M
2034 @item M
2035 Show the phases of the moon for three month around current date.
2036
2037 @kindex S
2038 @item S
2039 Show sunrise and sunset times. The geographical location must be set
2040 with calendar variables, see documentation of the Emacs calendar.
2041
2042 @kindex C
2043 @item C
2044 Convert the date at cursor into many other cultural and historic
2045 calendars.
2046
2047 @kindex H
2048 @item H
2049 Show holidays for three month around the cursor date.
2050
2051 @tsubheading{Quit and Exit}
2052 @kindex q
2053 @item q
2054 Quit Agenda, remove the agenda buffer.
2055
2056 @kindex x
2057 @cindex agenda files, removing buffers
2058 @item x
2059 Exit agenda, remove the agenda buffer and all buffers loaded by Emacs
2060 for the compilation of the agenda. Buffers created by the user to
2061 visit org files will not be removed.
2062
2063 @end table
2064
2065 @node Calendar/Diary integration, , Agenda commands, Timeline and Agenda
2066 @section Calendar/Diary integration
2067 @cindex calendar integration
2068 @cindex diary integration
2069
2070 Emacs contains the calendar and diary by Edward M. Reingold. The
2071 calendar displays a three-month calendar with holidays from different
2072 countries and cultures. The diary allows to keep track of
2073 anniversaries, lunar phases, sunrise/set, recurrent appointments
2074 (weekly, monthly) and more. In this way, it is quite complementary to
2075 Org-mode. It can be very useful to combine output from Org-mode with
2076 the diary.
2077
2078 The interaction between Org-mode and diary works both ways: You can
2079 list entries from the diary in the Org-mode agenda, from which many
2080 calendar and diary commands are directly accessible. Or you can
2081 display entries from the org agenda in the Emacs diary.
2082
2083 @menu
2084 * Diary to agenda:: Agenda incorporates the diary
2085 * Agenda to diary:: Diary incorporates the agenda
2086 @end menu
2087
2088 @node Diary to agenda, Agenda to diary, Calendar/Diary integration, Calendar/Diary integration
2089 @subsection Including the diary into the agenda
2090 @cindex diary to agenda
2091
2092 In order to include entries from the Emacs diary into Org-mode's
2093 agenda, you only need to customize the variable
2094
2095 @lisp
2096 (setq org-agenda-include-diary t)
2097 @end lisp
2098 @noindent
2099
2100 @noindent After that, everything will happen automatically. All diary
2101 entries including holidays, anniversaries etc will be included in the
2102 agenda buffer created by Org-mode. @key{SPC}, @key{TAB}, and
2103 @key{RET} can be used from the agenda buffer to jump to the diary
2104 file, in order to edit existing diary entries. The @kbd{i} command to
2105 insert new entries for the current date works in the agenda buffer, as
2106 well as the commands @kbd{S}, @kbd{M}, and @kbd{C} to display
2107 Sunrise/Sunset times, show lunar phases and to convert to other
2108 calendars, respectively. @kbd{c} can be used to switch back and forth
2109 between calendar and agenda.
2110
2111 @node Agenda to diary, , Diary to agenda, Calendar/Diary integration
2112 @subsection Including the agenda into the diary
2113
2114 If you prefer to use the Emacs diary as your main instrument and if
2115 you wish to include the Org-mode agenda into it, the following steps
2116 are necessary: Autoload the function @command{org-diary} as shown
2117 above under @ref{Installation and Activation}. You also need to use
2118 @emph{fancy diary display} by setting in @file{.emacs}:
2119
2120 @lisp
2121 (add-hook 'diary-display-hook 'fancy-diary-display)
2122 @end lisp
2123
2124 Then include the following line into your @file{~/diary} file, in
2125 order to get the entries from all files listed in the variable
2126 @code{org-agenda-files}:
2127
2128 @example
2129 &%%(org-diary)
2130 @end example
2131 @noindent
2132 You may also select specific files with
2133
2134 @example
2135 &%%(org-diary) ~/path/to/some/org-file.org
2136 &%%(org-diary) ~/path/to/another/org-file.org
2137 @end example
2138
2139 If you now launch the calendar and press @kbd{d} to display a diary,
2140 the headlines of entries containing a timestamp, date range, schedule,
2141 or deadline referring to the selected date will be listed. Just like
2142 in Org-mode's agenda view, the diary for @emph{today} contains
2143 additional entries for overdue deadlines and scheduled items. See
2144 also the documentation of the @command{org-diary} function.
2145
2146 @node Exporting, Miscellaneous, Timeline and Agenda, Top
2147 @chapter Exporting
2148 @cindex exporting
2149 @cindex ASCII export
2150 @cindex HTML export
2151
2152 @cindex headline levels, for exporting
2153 For printing and sharing of notes, an Org-mode document can be
2154 exported as an ASCII file, or as HTML. In the exported version, the
2155 first 3 outline levels will become headlines, defining a general
2156 document structure. Additional levels will be exported as itemize
2157 lists. If you want that transition to occur at a different level,
2158 specify it with a prefix argument. For example,
2159
2160 @example
2161 @kbd{M-1 M-x org-export-as-html}
2162 @end example
2163 @noindent
2164 creates only top level headlines and does the rest as items.
2165
2166 @menu
2167 * Export commands:: Commands which export and display
2168 * HTML formatting:: Interpretation of the buffer content
2169 * Export options:: How to influence exports
2170 * Comment lines:: Lines which will not be exported
2171 @end menu
2172
2173 @node Export commands, HTML formatting, Exporting, Exporting
2174 @section Export commands
2175
2176 @cindex region, active
2177 @cindex active region
2178 @cindex transient-mark-mode
2179 @table @kbd
2180 @kindex C-c C-x a
2181 @item C-c C-x a
2182 Export as ASCII file. If there is an active region, only the region
2183 will be exported. For an org file @file{myfile.org}, the ASCII file
2184 will be @file{myfile.txt}. The file will be overwritten without
2185 warning.
2186 @kindex C-c C-x h
2187 @item C-c C-x h
2188 Export as HTML file @file{myfile.html}.
2189 @kindex C-c C-x b
2190 @item C-c C-x b
2191 Export as HTML file and open it with a browser.
2192 @kindex C-c C-x t
2193 @item C-c C-x t
2194 Insert template with export options, see below.
2195 @kindex C-c :
2196 @item C-c :
2197 Toggle fixed-width for entry (QUOTE) or region, see below.
2198 @end table
2199
2200 @node HTML formatting, Export options, Export commands, Exporting
2201 @section HTML formatting
2202
2203 Not all text is transferred literally to the exported HTML file. The
2204 exporter implements the following interpretation:
2205
2206 @itemize @bullet
2207 @cindex underlined text
2208 @cindex bold text
2209 @cindex italic text
2210 @item
2211 You can make words @b{*bold*}, @i{/italic/}, and _underlined_
2212
2213 @cindex @TeX{} interpretation
2214 @item
2215 Simple @TeX{}-like math constructs are interpreted:
2216
2217 @cindex completion, of @TeX{} symbols
2218 @itemize @minus
2219 @item
2220 @samp{10^22} and @samp{J_n} are super- and subscripts. You can quote
2221 @samp{^} and @samp{_} with a backslash: @samp{\_} and @samp{\^}
2222 @item
2223 @samp{\alpha} indicates a Greek letter, @samp{\to} an arrow. You can
2224 use completion for these macros, just type @samp{\} and maybe a few
2225 letters, and press @kbd{M-@key{TAB}} to see possible completions.
2226 @end itemize
2227
2228 @cindex tables, export to HTML
2229 @item
2230 Tables are transformed into HTML tables. Data fields before the first
2231 horizontal separator line will be formatted as table header fields.
2232
2233 @cindex fixed width
2234 @item
2235 If a headline starts with the word @samp{QUOTE}, the text below the
2236 headline will be typeset as fixed-width, to allow quoting of computer
2237 codes etc. Lines starting with @samp{:} are also typeset in
2238 fixed-width font.
2239
2240 @cindex HTML tags
2241 @item
2242 If you want to include HTML tags which should be interpreted as such,
2243 mark them with a @samp{@@} like in @samp{@@<b>bold text@@</b>}.
2244 Plain @samp{<} and @samp{>} are always transformed to @samp{&lt;} and
2245 @samp{&gt;} in HTML export.
2246 @end itemize
2247
2248 If these conversions conflict with your habits of typing ASCII text,
2249 they can all be turned off with corresponding variables.
2250
2251 @node Export options, Comment lines, HTML formatting, Exporting
2252 @section Export options
2253 @cindex options, for export
2254
2255 @cindex completion, of option keywords
2256 The exporter recognizes special lines in the buffer which provide
2257 additional information. These lines may be put anywhere in the file.
2258 The whole set of lines can be inserted into the buffer with @kbd{C-c
2259 C-x t}. For individual lines, a good way to make sure the keyword is
2260 correct is to type @samp{#+} and then use @kbd{M-@key{TAB}} completion
2261 (@pxref{Completion}).
2262
2263 @example
2264 #+TITLE: the title to be shown (default is the buffer name)
2265 #+AUTHOR: the author (default taken from @code{user-full-name})
2266 #+EMAIL: his/her email address (default from @code{user-mail-address})
2267 #+LANGUAGE: language for HTML, e.g. @samp{en} (@code{org-export-default-language})
2268 #+TEXT: Some descriptive text to be inserted at the beginning.
2269 #+TEXT: Several lines may be given.
2270 #+OPTIONS: H:2 num:t toc:t \n:nil @:t ::t |:t ^:t *:nil TeX:t
2271 @end example
2272 @noindent
2273 The OPTIONS line is a compact form to specify export settings. Here
2274 you can
2275 @cindex headline levels
2276 @cindex section-numbers
2277 @cindex table of contents
2278 @cindex linebreak preservation
2279 @cindex quoted html tags
2280 @cindex fixed-width sections
2281 @cindex tables
2282 @cindex @TeX{}-like syntax for sub- and superscripts
2283 @cindex emphasized text
2284 @cindex @TeX{} macros
2285 @example
2286 H: @r{set the number of headline levels for export}
2287 num: @r{turn on/off section-numbers}
2288 toc: @r{turn on/off table of contents}
2289 \n: @r{turn on/off linebreak-preservation}
2290 @@: @r{turn on/off quoted html tags}
2291 :: @r{turn on/off fixed-width sections}
2292 |: @r{turn on/off tables}
2293 ^: @r{turn on/off @TeX{}-like syntax for sub- and superscripts.}
2294 *: @r{turn on/off emphasized text (bold, italic, underlined)}
2295 TeX: @r{turn on/off @TeX{} macros}
2296 @end example
2297
2298 @node Comment lines, , Export options, Exporting
2299 @section Comment lines
2300 @cindex comment lines
2301 @cindex exporting, not
2302
2303 Lines starting with @samp{#} in column zero are treated as comments
2304 and will never be exported. Also entire subtrees starting with the
2305 word @samp{COMMENT} will never be exported. Finally, any text before
2306 the first headline will not be exported either.
2307
2308 @table @kbd
2309 @kindex C-c ;
2310 @item C-c ;
2311 Toggle the COMMENT keyword at the beginning of an entry.
2312 @end table
2313
2314 @node Miscellaneous, Index, Exporting, Top
2315 @chapter Miscellaneous
2316
2317 @menu
2318 * Completion:: M-TAB knows what you need
2319 * Customization:: Adapting Org-mode to your taste
2320 * FAQ:: Frequently asked questions
2321 * Interaction:: Other Emacs packages
2322 * TTY keys:: Using Org-mode on a tty
2323 * Bugs:: Things which do not work perfectly
2324 * Acknowledgments:: These people provided feedback and more
2325 @end menu
2326
2327 @node Completion, Customization, Miscellaneous, Miscellaneous
2328 @section Completion
2329 @cindex completion, of @TeX{} symbols
2330 @cindex completion, of TODO keywords
2331 @cindex completion, of dictionary words
2332 @cindex completion, of option keywords
2333
2334 Org-mode supports in-buffer completion. This type of completion does
2335 not make use of the minibuffer. You simply type a few letters into
2336 the buffer and use the key to complete text right there.
2337
2338 @table @kbd
2339 @kindex M-@key{TAB}
2340 @item M-@key{TAB}
2341 Complete word at point
2342 @itemize @bullet
2343 @item
2344 At the beginning of a headline, complete TODO keywords.
2345 @item
2346 After @samp{\}, complete @TeX{} symbols supported by the exporter.
2347 @item
2348 After @samp{#+}, complete the special keywords like @samp{TYP_TODO} or
2349 @samp{OPTIONS} which set file-specific options for Org-mode. When the
2350 option keyword is already complete, pressing @kbd{M-@key{TAB}} again
2351 will insert example settings for this keyword.
2352 @item
2353 Elsewhere, complete dictionary words using ispell.
2354 @end itemize
2355 @end table
2356
2357 @node Customization, FAQ, Completion, Miscellaneous
2358 @section Customization
2359 @cindex customization
2360 @cindex options, for customization
2361 @cindex variables, for customization
2362
2363 There is a large number of variables which can be used to customize
2364 Org-mode. For the sake of compactness of the manual, we are not
2365 describing the variables here. For an overview of customization
2366 variables, use @kbd{M-x org-customize}. Or select @code{Browse Org
2367 Group} from the @code{Org->Customization} menu.
2368
2369 @node FAQ, Interaction, Customization, Miscellaneous
2370 @section Frequently asked questions
2371
2372 @enumerate
2373 @item @b{Org-mode seems to be a useful default mode for the various
2374 @file{README} files I have scattered through my directories. How do I
2375 turn it on for all @file{README} files?}
2376 @example
2377 (add-to-list 'auto-mode-alist '("README$" . org-mode))
2378 @end example
2379
2380 @item @b{I would like to have two windows on the same Org-mode
2381 file, but with different outline visibility. Is that possible?}@*
2382 @cindex @code{make-indirect-buffer}
2383 @cindex indirect buffers
2384 In GNU Emacs, you may use @emph{indirect buffers} which do exactly
2385 this. See the documentation on the command
2386 @code{make-indirect-buffer}. In XEmacs, this is currently not
2387 possible because of the different outline implementation.
2388
2389 @item @b{Is there an easy way to insert links to web locations?}@*
2390 @cindex URL, paste into buffer
2391 Sure, just type or paste them into the buffer. A plain-text URL-like
2392 string is directly interpreted as a link.
2393
2394 @item @b{When I export my TODO list, every TODO item becomes a
2395 separate section. How do I enforce these items to be exported as an
2396 itemized list?}@*
2397 If you plan to use ASCII or HTML export, make sure things you want to
2398 be exported as item lists are level 4 at least, even if that does mean
2399 there is a level jump. For example
2400
2401 @example
2402 * Todays top priorities
2403 **** TODO write a letter to xyz
2404 **** TODO Finish the paper
2405 **** Pick up kids at the school
2406 @end example
2407
2408 Alternatively, if you need a specific value for the heading/item
2409 transition in a particular file, use the @samp{+OPTIONS} line to
2410 configure the @samp{H} switch.
2411
2412 @example
2413 +OPTIONS: H:2; ...
2414 @end example
2415
2416 @item @b{I would like to export only a subtree of my file to HTML. How?}@*
2417 @cindex exporting a subtree
2418 If you want to export a subtree, mark the subtree as region and then
2419 export. Marking can be done with @kbd{C-c @@ C-x C-x}, for example.
2420
2421 @item @b{Org-mode takes over the S-cursor keys. I also want to use
2422 CUA-mode, is there a way to fix this conflict?}@*
2423 Yes, see @ref{Interaction}
2424
2425 @item @b{Is there an easy way to insert an empty table template with a
2426 default number of rows and columns?}@*
2427 @cindex table, empty template
2428 To insert an empty table template, just type @samp{|-} and use
2429 @key{TAB}. The default size can be changed with the variable
2430 @code{org-table-default-size}. However, just starting to type the
2431 first line is usually much easier.
2432
2433 @item @b{One of my table columns has started to fill up with
2434 @samp{#ERROR}. What is going on?}@*
2435 Org-mode tried to compute the column from other fields using a
2436 formula stored in the @samp{#+TBLFMT:} line just below the table, and
2437 the evaluation of the formula fails. Fix the fields used in the
2438 formula, or fix the formula, or remove it!
2439
2440 @item @b{When I am in the last column of a table and just above a
2441 horizontal line in the table, pressing TAB creates a new table line
2442 @i{before} the horizontal line. How can I quickly move to the line
2443 @i{below} the horizontal line instead?}@*
2444 Press @key{down} (to get on the separator line) and then @key{TAB}.
2445
2446 @item @b{How can I change the indentation of an entire table without
2447 fixing every line by hand?}@*
2448 @cindex indentation, of tables
2449 The indentation of a table is set by the first line. So just fix the
2450 indentation of the first line and realign with @key{TAB}.
2451
2452 @end enumerate
2453
2454
2455 @node Interaction, TTY keys, FAQ, Miscellaneous
2456 @section Interaction with other packages
2457 @cindex packages, interaction with other
2458 Org-mode can cooperate with the following packages:
2459
2460 @table @asis
2461 @cindex @file{table.el}
2462 @item @file{table.el} by Takaaki Ota
2463 Org mode cooperates with table.el, see @ref{table.el}.
2464 @cindex @file{calc.el}
2465 @item @file{calc.el} by Dave Gillespie
2466 Org-mode uses the calc package for implementing spreadsheet
2467 functionality in its tables (@pxref{Table calculations}). Org-modes
2468 checks for the availability of calc by looking for the function
2469 @code{calc-eval} which should be autoloaded in your setup if calc has
2470 been installed properly. As of Emacs 22, calc is part of the Emacs
2471 distribution. Another possibility for interaction between the two
2472 packages is using calc for embedded calculations. @xref{Embedded Mode,
2473 , Embedded Mode, calc, GNU Emacs Calc Manual}.
2474 @cindex @file{constants.el}
2475 @item @file{constants.el} by Carsten Dominik
2476 In a table formula (@pxref{Table calculations}), it is possible to use
2477 names for natural constants or units. Instead of defining you own
2478 constants in the variable @code{org-table-formula-constants}, install
2479 the @file{constants} package which defines a large number of constants
2480 and units, and lets you use unit prefixes like @samp{M} for
2481 @samp{Mega} etc. You will need version 2.0 of this package, available
2482 at @url{http://www.astro.uva.nl/~dominik/Tools}. Org-mode checks for
2483 the function @code{constants-get}, which has to be autoloaded in your
2484 setup. See the installation instructions in the file
2485 @file{constants.el}.
2486 @cindex @file{remember.el}
2487 @cindex @file{CUA.el}
2488 @item @file{CUA.el} by Kim. F. Storm
2489 Keybindings in Org-mode conflict with the @kbd{S-<cursor>} keys
2490 used by CUA-mode (as well as pc-select-mode and s-region-mode) to
2491 select and extend the region. If you want to use one of these
2492 packages along with Org-mode, configure the variable
2493 @code{org-CUA-compatible}. When set, Org-mode will move the following
2494 keybindings in org-mode files, and in the agenda buffer (but not
2495 during date selection).
2496 @example
2497 S-UP -> M-p S-DOWN -> M-n
2498 S-LEFT -> M-- S-RIGHT -> M-+
2499 S-RET -> C-S-RET
2500 @end example
2501 Yes, these are unfortunately more difficult to remember. If you want
2502 to have other replacement keys, look at the variable
2503 @code{org-disputed-keys}.
2504 @item @file{remember.el} by John Wiegley
2505 Org mode cooperates with remember, see @ref{Remember}.
2506 @cindex @file{planner.el}
2507 @item @file{planner.el} by John Wiegley
2508 Planner is another tool to plan work and keep track of tasks. Planner
2509 uses a multi-file approach with project pages and day pages. Is based
2510 on Emacs-Wiki. If Planner is your primary tool, it can be useful to
2511 display the agenda entries resulting from org files in day-pages of
2512 the planner. This can be done through the diary of the calendar:
2513 Integrate org files into the diary as described above, and then turn
2514 on the diary support of planner.
2515 @end table
2516
2517 @node TTY keys, Bugs, Interaction, Miscellaneous
2518 @section Using org-mode on a tty
2519
2520 Org-mode uses a number of keys that are not accessible on a tty. This
2521 applies to most special keys like cursor keys, @key{TAB} and
2522 @key{RET}, when these are combined with modifier keys like @key{Meta}
2523 and/or @key{Shift}. Org-mode uses these bindings because it needs to
2524 provide keys for a large number of commands, and because these keys
2525 appeared particularly easy to remember. In order to still be able to
2526 access the core functionality of Org-mode on a tty, alternative
2527 bindings are provided. Here is a complete list of these bindings,
2528 which are obviously more cumbersome to use. Note that sometimes a
2529 work-around can be better. For example changing a time stamp is
2530 really only fun with @kbd{S-@key{cursor}} keys. On a tty you would
2531 rather use @kbd{C-c .} to re-insert the timestamp.
2532
2533 @page
2534 @multitable @columnfractions 0.15 0.2 0.2
2535 @item @b{Default} @tab @b{Alternative 1} @tab @b{Alternative 2}
2536 @item @kbd{S-@key{TAB}} @tab @kbd{C-u @key{TAB}} @tab
2537 @item @kbd{M-@key{left}} @tab @kbd{C-c C-x l} @tab @kbd{@key{Esc} @key{left}}
2538 @item @kbd{M-S-@key{left}} @tab @kbd{C-c C-x L} @tab
2539 @item @kbd{M-@key{right}} @tab @kbd{C-c C-x r} @tab @kbd{@key{Esc} @key{right}}
2540 @item @kbd{M-S-@key{right}} @tab @kbd{C-c C-x R} @tab
2541 @item @kbd{M-@key{up}} @tab @kbd{C-c C-x u} @tab @kbd{@key{Esc} @key{up}}
2542 @item @kbd{M-S-@key{up}} @tab @kbd{C-c C-x U} @tab
2543 @item @kbd{M-@key{down}} @tab @kbd{C-c C-x d} @tab @kbd{@key{Esc} @key{down}}
2544 @item @kbd{M-S-@key{down}} @tab @kbd{C-c C-x D} @tab
2545 @item @kbd{S-@key{RET}} @tab @kbd{C-c C-x c} @tab
2546 @item @kbd{M-@key{RET}} @tab @kbd{C-c C-x m} @tab @kbd{@key{Esc} @key{RET}}
2547 @item @kbd{M-S-@key{RET}} @tab @kbd{C-c C-x M} @tab
2548 @item @kbd{S-@key{left}} @tab @kbd{C-c C-x @key{left}} @tab
2549 @item @kbd{S-@key{right}} @tab @kbd{C-c C-x @key{right}} @tab
2550 @item @kbd{S-@key{up}} @tab @kbd{C-c C-x @key{up}} @tab
2551 @item @kbd{S-@key{down}} @tab @kbd{C-c C-x @key{down}} @tab
2552 @end multitable
2553
2554 @node Bugs, Acknowledgments, TTY keys, Miscellaneous
2555 @section Bugs
2556 @cindex bugs
2557
2558 Here is a list of things which should work differently, but which I
2559 have found too hard to fix.
2560
2561 @itemize @bullet
2562 @item
2563 If you call @code{fill-paragraph} (bound to @kbd{M-q}) in a table, the
2564 filling is correctly disabled. However, if some text directly
2565 (without an empty line in between) precedes or follows a table, calling
2566 @code{fill-paragraph} in that text will also fill the table like
2567 normal text. Also, @code{fill-region} does bypass the
2568 @code{fill-paragraph} code and will fill tables like normal text.
2569 @item
2570 Text in an entry protected with the @samp{QUOTE} keyword should not
2571 autowrap.
2572 @item
2573 When the application called by @kbd{C-c C-o} to open a file link fails
2574 (for example because the application does not exits or refuses to open
2575 the file), it does so silently. No error message is displayed.
2576 @item
2577 The remote-editing commands in the agenda buffer cannot be undone with
2578 @code{undo} called from within the agenda buffer. But you can go to
2579 the corresponding buffer (using @key{TAB} or @key{RET} and execute
2580 @code{undo} there.
2581 @item
2582 Recalculating a table line applies the formulas from left to right.
2583 If a formula uses @emph{calculated} fields further down the row,
2584 multiple recalculation may be needed to get all fields consistent.
2585 @item
2586 Under XEmacs, if Org-mode entries are included into the diary, it is
2587 not possible to jump back from the diary to the org file. Apparently,
2588 the text properties are lost when the fancy-diary-display is used.
2589 However, from Org-mode's timeline and agenda buffers (created with
2590 @kbd{C-c C-r} and @kbd{C-c a}), things do work correctly.
2591 @item
2592 Linux should also have a default viewer application, using mailcap.
2593 Maybe we can use GNUS or VM mime code? Or dired's guessing commands?
2594 Any hints (or even patches) are appreciated.
2595 @item
2596 When you write @samp{x = a /b/ c}, b will be exported in italics.
2597 @item
2598 The exporters work well, but could be made more efficient.
2599 @end itemize
2600
2601 @page
2602
2603 @node Acknowledgments, , Bugs, Miscellaneous
2604 @section Acknowledgments
2605 @cindex acknowledgments
2606
2607 Org-mode was written by Carsten Dominik, who still maintains it at the
2608 Org-mode homepage @uref{http://www.astro.uva.nl/~dominik/Tools/org/}.
2609 The following people have helped the development along with ideas,
2610 suggestions and patches.
2611
2612 @itemize @bullet
2613 @item
2614 Matthias Rempe (Oelde) provided ideas, a patch introducing Windows
2615 NT/2000 support, and quality control.
2616 @item
2617 Kevin Rogers contributed code to access VM files on remote hosts.
2618 @item
2619 Juergen Vollmer contributed code generating the table of contents
2620 in HTML output, and other export improvements.
2621 @item
2622 Christian Egli converted the documentation into TeXInfo format. He
2623 also showed me his plans for a multifile summary for Org-mode. Some of
2624 his ideas have found their way into the agenda.
2625 @item
2626 Philip Rooke created the Org-mode reference card. He also helped with
2627 beta testing and contributed a number of very useful ideas.
2628 @item
2629 Christian Schlauer proposed angular brackets around links, among other
2630 things.
2631 @item
2632 David Wainberg suggested to implement an archiving mechanism and helped
2633 testing.
2634 @item
2635 Linking to VM/BBDB/GNUS was inspired by Tom Shannon's
2636 @file{organizer-mode.el}.
2637 @item
2638 Scheduling TODO items was inspired by John Wiegley's @file{planner.el}.
2639 @item
2640 Sacha Chua, the current maintainer of Planner, offered linking code
2641 from Planner. I made use of the offer for links to RMAIL and Wanderlust.
2642 @item
2643 Oliver Oppitz sent several useful suggestions.
2644 @item
2645 Carsten Wimmer suggested some changes and helped fix a bug in linking
2646 to GNUS.
2647 @item
2648 Pavel Chalmoviansky reported bugs and suggested improvements related
2649 to the agenda treatment of items with specified time.
2650 @item
2651 Stefan Monnier provided a patch with lots of little fixes to keep the
2652 Emacs-Lisp compiler happy.
2653 @item
2654 Kai Grossjohann pointed out that a number of key bindings in Org-mode
2655 conflict with other packages.
2656 @item
2657 Roland Winkler pointed out that additional keybindings are need to use
2658 Org-mode on a tty.
2659 @end itemize
2660
2661 @node Index, Key Index, Miscellaneous, Top
2662 @chapter Index
2663
2664 @printindex cp
2665
2666 @node Key Index, , Index, Top
2667 @chapter Key Index
2668
2669 @printindex ky
2670
2671 @bye
2672
2673 @ignore
2674 arch-tag: 7893d1fe-cc57-4d13-b5e5-f494a1bcc7ac
2675 @end ignore