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