Merge branch 'master' of ssh://repo.or.cz/srv/git/Worg
[Worg.git] / org-glossary.org
blob614ad7cb224c1b4385b4004582bf8d3cac42db87
1 #+OPTIONS:    H:3 num:nil toc:1 \n:nil @:t ::t |:t ^:nil -:t f:t *:t TeX:t LaTeX:t skip:nil d:(HIDE) tags:not-in-toc
2 #+STARTUP:    align fold nodlcheck oddeven lognotestate
3 #+SEQ_TODO:   TODO(t) INPROGRESS(i) WAITING(w@) | DONE(d) CANCELED(c@)
4 #+TAGS:       Write(w) Update(u) Fix(f) Check(c)
5 #+TITLE:      Org Glossary: An Explanation of Basic Org-Mode Concepts
6 #+AUTHOR:     Worg people
7 #+EMAIL:      mdl AT imapmail DOT org
8 #+LANGUAGE:   en
9 #+PRIORITIES: A C B
10 #+CATEGORY:   worg
12 [[file:index.org][{Back to Worg's index}]]
14 # Please feel free to add items or to complete any of the unfinished items.
16 * The Glossary
17 The org-manual does a great job of explaining the myriad features of
18 org-mode. But for new users, the sheer number of options and features
19 can be overwhelming.
21 #+begin_quote
23 What exactly are properties? How should I use them? Do I need to know
24 how they work in order to use org mode?
26 What are categories? How do they differ from tags?
28 #+end_quote
30 If you find yourself asking such questions, this document is for you.
31 In the table of contents, you will find an alphabetical list of basic
32 concepts/features in org-mode. Click on any of them to jump to a brief
33 definition, a more detailed explanation of the feature, and a
34 description of possible uses. And feel free to add your own
35 definitions by [[file:worg-about.org][editing Worg]].
37 * Agenda
38 :PROPERTIES:
39 :CUSTOM_ID: agenda
40 :END: 
41 ** Definition
43 The agenda allows you to create filtered views of the items in your
44 [[#agenda-files][agenda files]]. These include "day-planner" views of your schedule,
45 lists of your todos, and the results of queries (for tags, words,
46 regular expressions, etc.). You might think of the agenda as a
47 combination of a task manager and a very powerful search interface.
49 ** Details
51 Provided you have followed the manual's instructions on setting up
52 org-mode and have designated some [[#agenda-files][agenda files]], simply type =C-c C-a=
53 (or =M-x org-agenda=) to gain access to the various views available.
55 Here are brief explanations of the options:
57  - a (Agenda) :: Presents a view of today's (or, optionally, this
58    week's) scheduled items, appointments, and upcoming deadlines.
60  - t (Todo entries) :: Presents a list of all active [[#todo-keywords][todo
61    keywords]] in your agenda files.
63  - m (Match) :: Allows you to search your agenda files for headlines
64    with particular metadata (tags, properties, or TOD0s). 
66      + The simplest way to query your files is to enter the name of a
67        tag, e.g., "@computer".
69      + To construct more advanced queries, please [[http://orgmode.org/manual/Matching-tags-and-properties.html][consult the manual]].
71  - L (Timeline for current buffer) :: Shows a chronological view of
72    all items with dates in the file you are currently visiting.
74  - s (Search) :: Allows you to search entries in your agenda files for
75    particular words or regular expressions.
77  - / (multi-occur) :: Shows all lines in your agenda files matching a
78    regular expression.
80  - < :: Restricts the agenda view to the file you are currently
81    visiting.
83  - << :: Restricts the agenda view to the subtree you are currently
84    visiting.
86 Within the agenda view, each item is linked to its location in your
87 files, so you can jump directly to that location from the agenda (by
88 pressing =TAB= or =RET=).
90 ** Uses
92 The uses of the agenda are limitless!
94 The agenda frees you from having to worry too much about the
95 organization of your org-mode files. If you are new to org-mode,
96 simply start by creating todos in your outlines and notes and
97 (optionally) adding tags and scheduling information to them. Even if
98 your file is cluttered with extraneous notes and ramblings, the agenda
99 will find the relevant lines and display them in a clean and readable
100 fashion.
102   - One use of the agenda is as a day planner system. If you prefer to
103     schedule your tasks and to see a daily agenda of TODOs, you'll
104     probably be pressing =C-c a a= a lot.
106   - The agenda can also be used for a powerful GTD system. If you like
107     to filter your "next actions" by context, then you'll probably
108     make frequent use of =C-c a t= to see a list of all your active
109     TODOs and to filter them by tag/context.
111   - While the agenda is a powerful task management tool, it is also a
112     fantastic research tool. If you keep a file full of reading notes,
113     for instance, you can use the agenda to locate entries containing
114     a particular word or labeled by a particular tag.
116 There are many more possibilities of configuring the agenda with
117 [[http://orgmode.org/worg/org-tutorials/org-custom-agenda-commands.php][custom agenda commands]].
118     
119 * Agenda files
120 :PROPERTIES:
121 :CUSTOM_ID: agenda-files
122 :END:
123 ** Definition
125 These are the files that are used to generate your [[#agenda][agenda]] views. When
126 you call your agenda, the TODOs and scheduling information in your
127 agenda files will be displayed.
129 ** Details
131 There are different ways to designate these files:
133   1. Add a file manually with =C-c [= (=M-x
134      org-agenda-file-to-front=).
135      
136      - Remove with =C-c ]= (=M-x org-remove-file=).
138   2. Type =M-x customize-variable [RET] org-agenda-files= and enter
139      the names of your agenda files.
141      - If you enter a directory, all org files in that directory will
142        be included in your agenda files.
144 ** Tips: Organizing agenda files
146 One of the most common questions for new (and seasoned) users of
147 org-mode is how to organize agenda files. Should you put everything in
148 one big file organized by project? Should you create a new file for
149 each project? Or should you have separate "containers" for different
150 types of data: i.e., one file (or subtree) for appointments, one for
151 reference, one for todos, and so on.
153 The short answer: it doesn't matter. The agenda will be able to parse
154 and organize your TODOs, appointments, and deadlines no matter how
155 they are organized in your files.
157 If you are using org-mode for the first time, the simplest approach
158 may be to use a single file and to enter projects or todos as the
159 appear. Then, whenever you review your file, reorganize your todos and
160 projects into "groupings" (i.e., trees) that make sense to you. If a
161 tree starts to get too big, then start a new file. Perhaps you'll
162 discover that you want to keep your "work" and "personal" tasks in
163 different files.
165 Perhaps the main consideration in organizing your files is to consider
166 [[#inheritance][inheritance]] and [[#file-restriction][restriction]]. If you'd like a number of items to belong
167 to the same category or to have the same tags for easy agenda
168 filtering, then they probably belong in the same tree and/or file.
170 An example:
172   - If you'd like all your appointments to belong to the [[#category][category]]
173     "appts", then it probably doesn't make sense to scatter them as
174     first level headings among multiple files. It would make more
175     sense to create an appointments file or heading with the category
176     "appts".
178   - On the other hand, if you'd prefer to organize your appointments
179     by area of responsibility (e.g., work, personal, health, etc.),
180     then it would make perfect sense to place them in separate trees
181     and/or files.
183 * Archiving
184 :PROPERTIES:
185 :CUSTOM_ID: archiving
186 :END:
187 ** Definition
189 Archiving is a way of hiding and/or getting rid of old or unwanted
190 items in your org files without deleting them altogether.
192 ** Details
194 Archiving works on [[#tree][subtrees]] in your org-file by doing the following:
196   - Preventing them from opening when you cycle visibility with =TAB=
197     or =Shift-TAB=. (They will stay closed unless you explictly open
198     them with =Control-TAB=.)
200   - Keeping them out of your [[#agenda][agenda]] views. (They will only be included
201     if you type =v a= or =v A= in the agenda.)
203 There are three different ways to archiving an item/tree:
205   - C-c C-x a :: Mark the subtree as archived (i.e., give it an
206      =:ARCHIVE:= tag) but leave it in its current location.
208        - The headline remains visible in your org file but its contents
209          will not open during cycling and it will not be included in
210          the agenda.
212   - C-c C-x A :: Move the subtree to a separate archive headline
213      within the parent tree and/or file.
215        - This is useful for maintaining a clean org-file, since it
216          removes archived headlines from view.
218   - C-c C-x C-s :: Move the subtree to a separate file. The default
219      name of the file is =[filename].org_archive=.
221        - This is useful for getting rid of subtrees altogether. You
222          might want to use this when you finish a project.
224        - Since this is a relatively drastic action, org-mode offers an
225          alternate version of the command (=C-u C-c C-x C-s=) that
226          checks the subtree to make sure there are no active TODOs
227          before archiving it.
229 ** Uses
231 Archiving is very useful for keeping your org files free of clutter.
232 But which type of archiving should you use?
234 Here are a few ideas:
236   - Use =C-c C-x a= when you'd like to archive an entry/subtree but
237     want to be reminded of its presence (e.g., to be reminded of a
238     completed task) when you view your org file.
240   - Use =C-c C-x A= when you want to remove an entry/subtree from view but
241     want it to remain together with its context (i.e., within the file
242     or parent tree). This is often useful for archiving TODO items
243     that are part of an incomplete project.
245   - Use =C-c C-x C-s= when you are sure you no longer require an
246     entry/subtree except for reference. This is often useful for
247     archiving completed projects.
249 * Category
250 :PROPERTIES:
251 :CUSTOM_ID: category
252 :END:
253 ** Definition
254 A category is the group an item belongs to.
256 ** Details
257 The category of an item is shown in the left hand column of the
258 daily/weekly agenda view.
260 : Day-agenda (W38):
261 : Wednesday  16 September 2009
262 :   badclient:  Scheduled:  TODO Call angry client to calm him down
263 :   appts:      Dinner at Julio's 
265 By default an item's category is the name of the file (minus the
266 extension) to which it belongs.
268 You can specify a different category for a file by placing the
269 following line at the top of your org file:
271 #+begin_src org
272   ,#+CATEGORY: CompanyABC
273 #+end_src
275 Or, you can set a category as the property of a [[#tree][tree]]. All items in
276 that tree will [[#inheritance][inherit]] that category and be labeled with it in the
277 agenda.
279 #+begin_src org
280   ,* Birthdays
281   ,  :PROPERTIES:
282   ,  :CATEGORY: birthdays
283   ,  :END:
284 #+end_src
286 ** Uses
288 The main purpose of a category is to increase visibility in the
289 daily/weekly agenda --- i.e., to allow you to see which "group" an
290 item belongs to. 
292 Apart from visibility and compartmentalization, categories do not add
293 much additional functionality to an item. It is certainly *not*
294 necessary to set them for every file and/or heading.
296 You can search for items by category in the agenda using the following
297 key sequence:
299 : C-c C-a m CATEGORY="birthdays"
301 In general, categories are *not* an efficient way of searching
302 for and/or filtering tasks. It is much faster to use [[#tag][tags]] or filetags
303 for this.
305 Here's one way to distinguish between categories and tags: an entry
306 can belong to only one category but it can have multiple tags.
308 * DEADLINE 
309 ** Definition
311 A deadline is a special timestamp for indicating items that should be
312 performed by a certain time. Reminders about deadlines appear in your
313 agenda a specified number of days before they due.
315 ** Details
317 You can add a deadline to a headline/entry by typing C-c C-d. You can
318 remove a deadline by typing C-u C-c C-d.
320 Here is the syntax for deadlines:
322 #+begin_src org
323   ,* My big project
324   ,  DEADLINE: <2009-09-20 Sun>
325 #+end_src
327 You will be alerted of this deadline ahead of time when you select the
328 daily/weekly agenda (=C-c C-a a=).
330 :  index:      In   3 d.:  My big project
332 How soon the warning appears in your agenda is controlled by the
333 variable =org-deadline-warning-days=. The default number of days is 14.
335 The deadline will remain in your agenda (as an overdue item) until it
336 is marked done.
338 You can change the a warning period for a particular headline by
339 adding something like "-3d" (3 days) or "-2m" (two months) to the
340 timestamp:
342 #+begin_src org
343   ,* My big project
344   ,  DEADLINE: <2009-09-20 Sun -2m>
345 #+end_src
347 ** Uses
349 The obvious use of a deadline is to reminder yourself of tasks that
350 need to be completed by a certain date. 
352 Deadlines can also be useful as an "advanced notice" system --- e.g.,
353 reminding yourself to prepare for an event or project.
355 You can add both a deadline and a scheduling timestamp to the same
356 entry.
358 * Docstring
359 :PROPERTIES:
360 :CUSTOM_ID: docstring
361 :END:
363 ** Definition
364 A [[http://en.wikipedia.org/wiki/Docstring][docstring]] is the documentation written as part of a emacs lisp
365 variable or a function. It is part of Emacs' wonderful interactive
366 help system.
368 (Note: This definition is not org-mode specific, but is rather a more
369 general org-mode/lisp/coding concept. It's included here because
370 mailing list posts often reference a "docstring," an obscure phrase
371 for anyone not familiar with coding lingo.)
373 ** Details and uses
375 If you are wondering what a particular org-mode key combination,
376 function, or variable does, the manual is not your only source of
377 information. Carsten has also embedded a wealth of resources into the
378 org-mode source code itself. These can be easily viewed using Emacs
379 built-in help functions.
381 For instance, let's say you want to learn more about creating a clock
382 report in org mode. One way to do this is to type =C-h k= or =M-x
383 describe-key= and then to enter the relevant key combination (=C-c
384 C-x-C-r=). This will provide the following very helpful information:
386 : org-clock-report is an interactive compiled Lisp function in
387 : `org-clock.el'.
389 : It is bound to C-c C-x C-r, <menu-bar> <Org> <Logging work> <Create
390 : clock table>.
392 : (org-clock-report &optional arg)
394 : Create a table containing a report about clocked time.
395 : If the cursor is inside an existing clocktable block, then the table
396 : will be updated.  If not, a new clocktable will be inserted.
397 : When called with a prefix argument, move to the first clock table in the
398 : buffer and update it.
400 : [back]
402 If you happened to know the name of the function, you could also
403 locate the same information using =C-h f= or =M-x describe-function=
404 and entering =org-clock-report=. Or you could use =C-h a= or
405 =apropos-command= to browse all functions that contain the words "org
406 clock".
408 Finally, if you want to learn more about variables, you can read their
409 docstrings by browsing the customize interface (=M-x customize-group
410 [RET] org=) or by typing =C-h v= or =M-x describe-variable=).
412 * Drawers
413 :PROPERTIES:
414 :CUSTOM_ID: drawers
415 :END:
416 ** Definition
418 A drawer is a container that can hide information you don't want to
419 see during normal viewing and/or cycling of your outline.
421 ** Details
423 A drawer looks like this:
425 #+begin_src org
426   ,* Daily sleep log
427   ,  :LOGBOOK:
428   ,  - Note taken on [2009-09-16 Wed 04:02] \\
429   ,    Didn't sleep at all.
430   ,  - Note taken on [2009-09-15 Tue 05:25] \\
431   ,    Slept fitfully.
432   ,  - Note taken on [2009-09-14 Mon 09:30] \\
433   ,    Slept like a log.
434   ,  :END:
435 #+end_src
437 When you cycle the visibility of your outline, the contents of the
438 drawer will remain hidden. 
440 #+begin_src org
441   ,* Daily sleep log
442   ,  :LOGBOOK:
443 #+end_src
445 The only way to view the contents is to press =TAB= directly on the
446 drawer.
448 If you want a new name for a drawer, such as :NOTES:, you must
449 customize the variable "org-drawers". Simply type =M-x
450 customize-variable [RET] org-drawers" and add a new label.
452 ** Uses
454 By default, org-mode uses drawers to hide a variety of information,
455 such as [[#property][properties]] and clocked times.
457 But drawers are also quite useful for storing comments that you don't
458 want to see all the time. For instance, if you are writing a paper,
459 you might add a =:NOTE:= drawer to the variable =org-drawers=. Then
460 you can deposit any notes to yourself in such drawers. By default, the
461 information you put in drawers will not be exported to HTML, LaTeX,
462 etc.
464 * Entry
465 :PROPERTIES:
466 :CUSTOM_ID: entry
467 :END:
468 ** Definition
470 An entry is the basic unit of data in org-mode. It consists of a
471 [[#headline][headline]], metadata (tags, todo keyword, properties, priority, etc.),
472 and whatever other text it contains.
474 ** Details
476 An entry is to be distinguished from a [[#tree][tree]], which consists of all
477 headlines and entries beneath a particular entry within the outline
478 structure. Entries nested within other entries form a tree.
480 Here is a sample entry with a lot of data:
482 #+begin_src org
483   ,* TODO [#B] Headline                                                   :tags:
484   ,  :PROPERTIES:
485   ,  :DESCRIPTION: This is a sample property.
486   ,  :CATEGORY: documentation
487   ,  :CUSTOM_ID: an-extra-special-headline
488   ,  :END:
489   
490   ,And here is the text of an entry. You can put an unlimited amount of
491   ,text in an entry!
492   
493   ,You can also add lists:
494   
495   , - First item
496   
497   , - Second item
498   
499   , - Third item
500   
501   ,And tables:
502   
503   ,| Meal      | Food            | Calories |
504   ,|-----------+-----------------+----------|
505   ,| Breakfast | Eggs            |      500 |
506   ,| Lunch     | Escargot        |      800 |
507   ,| Dinner    | Bread and Water |      200 |
508   ,|-----------+-----------------+----------|
509   ,| Total     |                 |     1500 |
510 #+end_src
512 * Headline
513 :PROPERTIES:
514 :CUSTOM_ID: headline
515 :END: 
516 ** Definition
517 A headline is the name for an outline heading in an org file.
519 ** Details
520 Headlines begin with one or more asterisks. 
522 #+begin_src org
523   ,* A headline
524 #+end_src
526 The "level" of a headline corresponds to the number of asterisks. The more asterisks,
527 the deeper the level in the outline.
529 #+begin_src org
530   ,***** A "level 5" outline heading
531 #+end_src
533 As are all outlines, org-files are organized hierarchically. Deeper
534 headlines are "children" of higher-level "parent" headlines (and can
535 "inherit" their properties). Headlines on the same level are known as
536 siblings.
538 #+begin_src org
539   ,* A parent
540   ,** A child
541   ,*** Sibling one (also a child of "A child")
542   ,*** Sibling two
543   ,*** Sibling three
544 #+end_src
546 You can move headlines (and their corresponding [[#entry][entries]]) by using the
547 cursor keys in conjunction with the =Meta= key.
549  - =M-Left= and =M-Right= move the headline horizontally (i.e., change
550    its level).
552    - The org documentation often uses the terms "promote" and "demote"
553      for this action.
555  - =M-Up= and =M-Down= move the headline vertically.
557 You can easily jump to another headline using =M-x org-goto= (=C-c
558 C-j=).
560 You can easily "refile" a headline in a different location using =M-x
561 org-refile= (=C-c C-w=).
563 ** Uses
565 The basic use of headings, of course, is to distinguish separate
566 sections within your outline and to organize them hierarchically.
568 The other major use of headings is as TODO "items" that appear in your
569 agenda.
571 The power of org-mode lies in its treatment of headlines as
572 "containers" of information to which you can attach all sorts of data
573 ([[#todo-keywords][todo keywords]], [[tag][tags]], priorities, timestamps, [[#property][properties]], and an
574 unlimited amount of text). This turns org-mode's deceptively simple
575 outline structure into a powerful "database" of information, in which
576 units of data can be nested within one another.
578 * Inheritance
579 ** Definition
581 Inheritance is a term used to describe the way in which [[#entry][entries]] in a
582 [[#tree][tree]] can share the properties of their "parent" [[#headline][headlines]].
584 ** Details
586 Org-mode takes full advantage of the hierarchical structure of
587 outlines by allowing lower level headlines to "inherit" (or share) the
588 properties of their parents.
590 The most common form of inheritance in org-mode is "[[http://orgmode.org/manual/Tag-inheritance.html][tag inheritance]]".
591 This is controlled by the variable org-use-tag-inheritance (true by
592 default). When turned on, lower level outline headings share the tags
593 of their parents. Thus in the following tree, all the headlines have
594 the tag "=:reading:=", even though it is only explicitly set for the
595 top level headline:
597 #<<tag-inheritance-example>>
598 #+begin_src org
599   ,* Summer reading list                                               :reading:
600   ,  DEADLINE: <1965-06-06 Sun>
601   
602   ,** /To Kill a Mockingbird/
603   
604   ,** /Catch 22/
605   
606   ,** /Herzog/
607 #+end_src
609 Some properties, such as [[#category][category]], are also inherited by default. See
610 [[http://orgmode.org/manual/Property-inheritance.html][the manual]] for more details.
612 ** Uses
614 The most common use of tag inheritance is in agenda views and agenda
615 filtering. For instance, if you searched for the tag "reading" in your
616 agenda files, all of the headings in the [[tag-inheritance-example][example above]] would appear. 
618 As a result it is easy to add a tag and/or category to a whole subtree
619 of items simply by adding a single tag to the parent headline.
621 Let's say for instance, that you want to designate a whole bunch of
622 tasks as belonging to the project "topsecret". By adding =:topsecret:=
623 to the top headline of the group, you are in effect labeling all the
624 items in the tree as "topsecret". An agenda search for the TODOs with
625 the tag "topsecret" (=C-c a M [RET] topsecret=) would then return any
626 active TODOs in the entire tree.
628 Another common use of inheritance is to allow a special setting (e.g.,
629 logging or archive location) to apply to an entire subtree.
631 Finally, inheritance plays an important role in org-mode's column
632 view.
634 * Property
635 :PROPERTIES:
636 :CUSTOM_ID: property
637 :END:
638 ** Definition
640 A property is an arbitrary piece of "metadata" you can attach to an
641 entry. A property takes the form of a "data pair," which consists of
642 a key and its value.
644 ** Details
645 Properties are stored in [[#drawer][drawers]] beneath a headline. Here is a sample
646 property drawer:
648 #+begin_src org
649   ,* Invoice for fixing the toilet
650   ,  :PROPERTIES:
651   ,  :LOGGING:  lognoterepeat
652   ,  :BILLED: 102.13
653   ,  :BILLING_DATE: 2009-09-11
654   ,  :CLIENT:   ABC Company
655   ,  :END:
656 #+end_src
658 Though org-mode reserves a handful of property keys for special uses
659 (e.g., LOGGING in the example above), you are otherwise free to add
660 whatever property keys and values you'd like.
662 Though you can type properties by hand, the simplest way to add them
663 is to type =C-c C-x p= or =M-x org-set-property=.
665 ** Uses
667 For new org users, properties can seem a bit puzzling. What exactly
668 are they for? Here are some of their uses:
670    1. To specify settings for the local org-mode [[#tree][tree]]. 
672       - For instance, though you may not normally want to be prompted
673         for a note when you mark an item as DONE, you might want to
674         make an exception for a particular task or project. To do so,
675         you would set the LOGGING property to "lognotedone" in the
676         relevant subtree.
678    2. To create a small database of information.
680       - The manual offers an nice example of this: [[http://orgmode.org/manual/Property-syntax.html#Property-syntax][keeping track
681         of a information about a CD collection]].
683       - Similarly, you might keep bibliographical information about
684         books you've read in properties.
686    3. To enter data that can be viewed as a "spreadsheet" in column view.
688    4. To create more specific labels for headlines than generic tags allow.
690       - For instance, if you are keeping track of expenses, you could
691         put the type of expense in a tag, but then it would be mixed
692         up with your other tags. A solution would be to create a
693         special property (e.g., EXPENSE_TYPE) to hold the information.
695    5. To label a particular tree with a unique ID so that it can be
696       referenced easily via hyperlinks.
698 * Tag
699 :PROPERTIES:
700 :CUSTOM_ID: tag
701 :END:
702 ** Definition
704 A tag is a label (or piece of "metadata") that is attached to a
705 headline for easy identification and filtering later. Several tags can
706 be attached to the same headline.
708 ** Details
710 Tags can be added to headlines with the key combination =C-c C-q= or
711 =C-c C-c=.
713 Tags have the following syntax:
715 #+begin_src org
716   ,* A headline with tags                               :Richard:URGENT:errands:
717 #+end_src
719 You may be familiar with tags from blogs or sites like [[http://del.icio.us][del.icio.us]].
720 Tags are a way of labeling information without having to rely on a
721 rigid hierarchical structure. Unlike categories, you can give a
722 headline/entry multiple tags. In many ways, org-mode offers the best
723 of both worlds: the hierarchical organization of an outline and the
724 impromptu labeling of tags.
726 The entry above would appear in queries for any of the tags:
727 "Richard", "URGENT", or "errands".
729 The syntax for searching tags via the [[#agenda][agenda]] is quite simple. For
730 instance, you could create a targeted agenda search for all items
731 tagged "Richard" and "urgent".
733 : C-c a m Richard+URGENT
735 Or for items tagged Richard that are not urgent:
737 : C-c a m Richard-URGENT
739 You can also use sparse view searches to display all tags within a
740 particular org-file.
742 If you find yourself commonly using certain tags, you can create a
743 list of shortcuts for them by typing =M-x customize-variable [RET]
744 org-tags-alist=. You can also set special tags for a particular file.
745 See [[http://orgmode.org/manual/Setting-tags.html][the manual]] for more details.
747 ** Uses
749 One common use of tags is as [[http://en.wikipedia.org/wiki/Getting_Things_Done#GTD_methodology][GTD contexts]]. You might, for instance,
750 define a list of tags in org-tags-alist that correspond to the various
751 contexts in a "next action" can be completed: @computer, @home,
752 @errands, @work, and so on. Then you can quickly filter for these tags
753 by pressing "=/=" in the agenda. See [[http://orgmode.org/manual/Agenda-commands.html#Agenda-commands][the manual]] for more details.
755 Another common use of a tag is to label a group of tasks as belonging
756 to a particular project or area of responsibility. For instance, you
757 might create a subtree in your file that contains all your house
758 repair projects and tag it with ":houserepair:". Let's say that when
759 Saturday rolls around, you decide to work exclusively on repairs.
760 Thanks to [[#inheritance][inheritance]], you can quickly locate all your tasks that
761 inherit the ":houserepair:" tag.
763 Here's what this would look like:
765 #+begin_src org
766   ,* Tasks around the house                                        :houserepair:
767   
768   ,** TODO Fix sink
769   
770   ,** TODO Mow lawn
771   
772   ,** TODO Tear up carpet
773 #+end_src
775 Tags are also extremely useful for notetaking and research. You might,
776 for instance, create a file of reading notes in which each entry is a
777 snippet of information tagged with relevant keywords. The beauty of
778 org-mode is that these snippets can be easily rearranged within the
779 outline and yet remain easy to find via tags.
781 ** Considerations: Tags vs. TODO keywords vs. Properties
783 One question that often emerges for new users of org mode is how to
784 decide when tags, [[#todo-keyword][TODO keywords]], or [[#property][properties]] are appropriate.
786 For instance, should you define your projects by creating a special
787 todo keyword for them (=PROJECT=) or by giving them a "=:project:="
788 tag? Similarly, should you create a TODO keyword for items that are
789 waiting, or should you add a "=:waiting:=" tag?
791 Either choice would be fine, of course, but here are a few
792 considerations to keep in mind:
794 1. Do you want quickly to filter for the item in the agenda view? If
795    so, a tag is probably your best choice.
797    - Note, you can add a setting to your .emacs that automatically
798      adds a tag whenever you assign a particular TODO keyword. Type
799      "=C-c v org-todo-state-tags-triggers=" for more information.
801 2. How visible do you want the keyword and/or tag to be? When viewing
802    an org-mode file, TODO Keywords are highly visible, tags somewhat
803    less so, and properties not at all.
805 3. Is the keyword part of your workflow? Do you want to be able to log
806    information (such as a timestamp and a note) when you add or remove
807    the keyword? If so, then use a TODO keyword.
809    - An example: While a "waiting" tag might make it easier to filter
810      for items in your todo list that are waiting/pending, a =WAITING=
811      todo keyword would allow you to keep track of when an item
812      entered the "waiting" state and when it left it.
814    - Similarly, if you want to keep track of a sequence of actions on
815      phone calls you receive, it would be relatively inefficient to
816      add and remove tags to designate each stage. It would probably be
817      better to set up a TODO sequence, such as ACT -> CALL -> MESSAGE
818      -> FOLLOWUP -> etc.
820 * Tree (subtree)
821 :PROPERTIES:
822 :CUSTOM_ID: tree
823 :END:
824 ** Definition
826 A tree is created by the structure of an outline. It consists of a
827 heading and all subheadings/entries beneath it within the outline
828 hierarchy.
830 ** Details
832 A tree is to be distinguished from an [[#entry][entry]]. Whereas an entry
833 indicates only a single headline and its data, a tree consists of
834 multiple nested entries. And, of course, subtrees are nested within
835 larger trees.
837 * Todo Keywords
838 :PROPERTIES:
839 :CUSTOM_ID: todo-keyword
840 :END:
841 ** Definition
843 A TODO keyword is a small keyword at the beginning of a headline that
844 defines the TODO state of the entry. 
846 ** Details
848 The default TODO keywords in org-mode are TODO and DONE. They are
849 automatically given nice colors to make them stand out.
851 #+begin_src org
852   ,* DONE Check cupboard to see if I'm out of bread 
853   ,  CLOSED: [2009-09-16 Wed 13:14] 
854   ,* TODO Buy bread at the store
855 #+end_src
857 Org mode distinguishes between two types of keywords, active and
858 inactive (corresponding with the default TODO and DONE). By default,
859 active TODOs will be shown in [[#agenda][agenda views]]. Inactive todos will not be
860 shown.
862 You can select a TODO keyword by typing =C-c C-t= on an item. Or you
863 can move sequentially through TODOs by typing =Shift-Left= or
864 =Shift-Right=.
866 While the default keywords TODO and DONE will suffice for many users,
867 you can define your own TODO keywords (such as PROJECT, WAITING,
868 etc.) by following the instructions in the manual:
870 - http://orgmode.org/manual/TODO-Items.html
872 ** Uses
873 :PROPERTIES:
874 :ID:       e0f76b6c-411f-4df1-88f5-445e11d9ca1d
875 :END:
877 Not surprisingly, the most common use of TODO keywords is to indicate
878 items in your outline files that require action. Where other task
879 management systems often separate notes and todos, org-mode allows you
880 to mark items in your notes as TODOs.
882 Another common use of TODO keywords is to follow a single item through
883 an extended workflow. For instance, you might create a special TODO
884 keyword sequence for invoices by placing the following at the top of
885 your org file:
887 #+begin_src org
888 , #+SEQ_TODO: INVOICE(i) MAIL(m) WAITING(w) FOLLOWUP(f) | RECEIVED(r)
889 #+end_src
891 Note: The "|" separates active from inactive todos.
893 You can combine such todo sequences with logging in order to keep a
894 record of when each event in the sequence happened.
896 * TODO Awaiting definitions
897 ** Agenda filtering
898 ** CLOCK 
899 ** Column view
900 ** Cycling
901 ** Effort estimate
902 ** Filetag
903 ** Project
904 ** Note
905 ** List 
906 ** Level
907 ** Logging
908 ** SCHEDULED 
909 ** Restriction lock
910 ** Table 
911 ** Timestamp