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