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