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