Release 4.52

This commit is contained in:
Carsten Dominik 2008-01-31 11:32:48 +01:00
parent fdf165e556
commit d790f20ba9
8 changed files with 365 additions and 159 deletions

266
org
View File

@ -5,7 +5,7 @@ START-INFO-DIR-ENTRY
* Org Mode: (org). outline-based notes management and organizer
END-INFO-DIR-ENTRY
This manual is for Org-mode (version 4.51).
This manual is for Org-mode (version 4.52).
Copyright (C) 2004, 2005, 2006 Free Software Foundation
@ -27,7 +27,7 @@ File: org, Node: Top, Next: Introduction, Prev: (dir), Up: (dir)
Org Mode Manual
***************
This manual is for Org-mode (version 4.51).
This manual is for Org-mode (version 4.52).
Copyright (C) 2004, 2005, 2006 Free Software Foundation
@ -2610,16 +2610,22 @@ special command for inserting tags:
default this list is constructed dynamically, containing all tags
currently used in the buffer. You may also globally specify a hard list
of tags with the variable `org-tag-alist'. Finally you can set the
allowed tags for a given file with lines like
default tags for a given file with lines like
#+TAGS: @WORK @HOME @TENNISCLUB
#+TAGS: Laptop Car PC Sailboat
The default support method is minibuffer completion. However,
Org-mode also implements a much better method: _fast tag selection_.
This method allows to select and deselect tags with a single key per
tag. To function efficiently, you should assign unique keys to all
tags. This can be done globally with
If you have globally defined your preferred set of tags using the
variable `org-tag-alist', but would like to use a dynamic tag list in a
specific file: Just add an empty TAGS option line to that file:
#+TAGS:
The default support method for entering tags is minibuffer
completion. However, Org-mode also implements a much better method:
_fast tag selection_. This method allows to select and deselect tags
with a single key per tag. To function efficiently, you should assign
unique keys to most tags. This can be done globally with
(setq org-tag-alist '(("@WORK" . ?w) ("@HOME" . ?h) ("Laptop" . ?l)))
@ -2641,21 +2647,35 @@ to activate any changes.
If at least one tag has a selection key, pressing `C-c C-c' will
automatically present you with a special interface, listing inherited
tags, the tags of the current headline, and a list of all legal tags
with corresponding keys(2). Pressing keys for the tags will add or
remove them from the list of tags in the current line. Selecting a tag
in a group of mutually exclusive tags will turn off any other tags from
that group. <SPC> clears all tags for this line, `RET' accepts the
modified set, and `C-g' aborts without installing changes. This method
lets you assign tags to a headline with very few keys. With the above
setup, you could clear the current tags and set `@HOME', `Laptop' and
`PC' tags with just the following keys: `C-c C-c <SPC> h l p <RET>'.
Switching from `@HOME' to `@WORK' would be done with `C-c C-c w <RET>'.
with corresponding keys(2). In this interface, you can use the
following keys:
What if you have globally defined your preferred set of tags using
the variable `org-tag-alist', but would like to use a dynamic tag list
in a specific file? Just add an empty TAGS option line to that file:
`a-z...'
Pressing keys assigned to tags will add or remove them from the
list of tags in the current line. Selecting a tag in a group of
mutually exclusive tags will turn off any other tags from that
group.
#+TAGS:
`<TAB>'
Enter a tag in the minibuffer, even if the tag is not in the
predefined list. You will be able to complete on all tags present
in the buffer.
`<SPC>'
Clear all tags for this line.
`<RET>'
Accept the modified set.
`C-g'
Abort without installing changes.
This method lets you assign tags to a headline with very few keys. With
the above setup, you could clear the current tags and set `@HOME',
`Laptop' and `PC' tags with just the following keys: `C-c C-c <SPC> h l
p <RET>'. Switching from `@HOME' to `@WORK' would be done with `C-c
C-c w <RET>'. Adding the non-predefined tag `Sarah' could be done with
`C-c C-c <TAB> S a r a h <RET> <RET>'.
---------- Footnotes ----------
@ -2690,12 +2710,38 @@ information into special lists.
for OR. `&' binds more strongly than `|'. Parenthesis are currently
not implemented. A tag may also be preceded by `-', to select against
it, and `+' is syntactic sugar for positive selection. The AND
operator `&' is optional when `+' or `-' is present. For example,
`+WORK-BOSS' would select all headlines that are tagged `:WORK:', but
discard those also tagged `:BOSS:'. The search string `WORK|LAPTOP'
selects all lines tagged `:WORK:' or `:LAPTOP:'. The string
`WORK|LAPTOP&NIGHT' requires that the `:LAPTOP:' lines are also tagged
`NIGHT'.
operator `&' is optional when `+' or `-' is present. Examples:
`+WORK-BOSS'
Select all headlines that are tagged `:WORK:', but discard those
also tagged `:BOSS:'.
`WORK|LAPTOP'
Selects lines tagged `:WORK:' or `:LAPTOP:'.
`WORK|LAPTOP&NIGHT'
Like the previous example, but require the `:LAPTOP:' lines to be
tagged also `NIGHT'.
If you are using multi-state TODO keywords (*note TODO
extensions::), it can be useful to also match on the TODO keyword.
This can be done by adding a condition after a double slash to a tags
match. The syntax is similar to the tag matches, but should be applied
with consideration: For example, a positive selection on several TODO
keywords can not meaningfully be combined with boolean AND. However,
_negative selection_ combined with AND can be meaningful. Examples:
`WORK//WAITING'
Select `:WORK:'-tagged TODO lines with the specific TODO keyword
`WAITING'.
`WORK//-WAITING-NEXT'
Select `:WORK:'-tagged TODO lines that are neither `WAITING' nor
`NEXT'
`WORK//+WAITING|+NEXT'
Select `:WORK:'-tagged TODO lines that are either `WAITING' or
`NEXT'.

File: org, Node: Agenda views, Next: Embedded LaTeX, Prev: Tags, Up: Top
@ -2904,6 +2950,8 @@ collected into a single place.
keyword, for example `3 r'. If you often need a search for a
specific keyword, define a custom command for it (*note Agenda
dispatcher::).
Matching specific TODO keywords can also be done as part of a tags
search (*note Tag searches::).
Remote editing of TODO items means that you can change the state of a
TODO entry with a single key press. The commands available in the TODO
@ -2942,7 +2990,9 @@ collect them into an agenda buffer.
`C-c a M'
Like `C-c a m', but only select headlines that are also TODO items
and force checking subitems (see variable
`org-tags-match-list-sublevels').
`org-tags-match-list-sublevels'). Matching specific todo keywords
together with a tags match is also possible, see *Note Tag
searches::.
The commands available in the tags list are described in *Note
Agenda commands::.
@ -5035,6 +5085,7 @@ Index
* BBDB links: External links. (line 6)
* block agenda: Block agenda. (line 6)
* bold text: Enhancing text. (line 15)
* Boolean logic, for tag searches: Tag searches. (line 21)
* bug reports: Feedback. (line 6)
* bugs: Bugs. (line 6)
* C-c C-c, overview: The very busy C-c C-c key.
@ -5289,7 +5340,7 @@ Index
* structure editing: Structure editing. (line 6)
* structure of document: Document structure. (line 6)
* sublevels, inclusion into tags match: Tag inheritance. (line 6)
* sublevels, inclusion into todo list: Global TODO list. (line 31)
* sublevels, inclusion into todo list: Global TODO list. (line 33)
* subscript: Subscripts and Superscripts.
(line 6)
* subtree cycling: Visibility cycling. (line 10)
@ -5342,6 +5393,8 @@ Index
* timestamp: Time stamps. (line 13)
* timestamps, creating: Creating timestamps. (line 6)
* TODO items: TODO items. (line 6)
* TODO keyword matching: Global TODO list. (line 17)
* TODO keyword matching, with tags search: Tag searches. (line 38)
* TODO keywords completion: Completion. (line 6)
* TODO list, global: Global TODO list. (line 6)
* TODO types: TODO types. (line 6)
@ -5389,17 +5442,20 @@ Key Index
(line 28)
* <left>: Agenda commands. (line 91)
* <RET> <1>: Agenda commands. (line 41)
* <RET> <2>: The date/time prompt.
* <RET> <2>: Setting tags. (line 76)
* <RET> <3>: The date/time prompt.
(line 53)
* <RET>: Built-in table editor.
(line 64)
* <right>: Agenda commands. (line 86)
* <SPC>: Agenda commands. (line 28)
* <SPC> <1>: Agenda commands. (line 28)
* <SPC>: Setting tags. (line 73)
* <TAB> <1>: CDLaTeX mode. (line 23)
* <TAB> <2>: Agenda commands. (line 35)
* <TAB> <3>: Built-in table editor.
* <TAB> <3>: Setting tags. (line 68)
* <TAB> <4>: Built-in table editor.
(line 57)
* <TAB> <4>: Plain lists. (line 37)
* <TAB> <5>: Plain lists. (line 37)
* <TAB>: Visibility cycling. (line 10)
* > <1>: Agenda commands. (line 154)
* >: The date/time prompt.
@ -5726,77 +5782,77 @@ Ref: Clocking work time-Footnote-1103930
Node: Tags104056
Node: Tag inheritance104818
Node: Setting tags105755
Ref: Setting tags-Footnote-1108887
Ref: Setting tags-Footnote-2108999
Node: Tag searches109079
Node: Agenda views110288
Node: Agenda files112381
Ref: Agenda files-Footnote-1113341
Ref: Agenda files-Footnote-2113490
Node: Agenda dispatcher113683
Node: Weekly/Daily agenda115300
Node: Calendar/Diary integration116265
Node: Global TODO list117603
Node: Matching headline tags119655
Node: Timeline120599
Node: Presentation and sorting121262
Node: Categories122040
Node: Time-of-day specifications122704
Node: Sorting of agenda items124682
Node: Agenda commands125964
Node: Custom agenda views131852
Node: Storing searches132527
Node: Block agenda134439
Node: Setting Options135669
Node: Batch processing138381
Node: Embedded LaTeX139511
Ref: Embedded LaTeX-Footnote-1140603
Node: Math symbols140793
Node: Subscripts and Superscripts141558
Node: LaTeX fragments142402
Ref: LaTeX fragments-Footnote-1144510
Node: Processing LaTeX fragments144772
Node: CDLaTeX mode145718
Ref: CDLaTeX mode-Footnote-1148202
Node: Exporting148350
Node: ASCII export149664
Node: HTML export150954
Node: XOXO export153790
Node: iCalendar export154229
Node: Text interpretation156052
Node: Comment lines156531
Node: Enhancing text157002
Node: Export options158694
Node: Publishing160361
Ref: Publishing-Footnote-1161157
Node: Configuration161353
Node: Project alist162071
Node: Sources and destinations163137
Node: Selecting files163867
Node: Publishing action164615
Node: Publishing options165848
Node: Publishing links168000
Node: Project page index169513
Node: Sample configuration170291
Node: Simple example170783
Node: Complex example171456
Node: Triggering publication173532
Node: Miscellaneous174217
Node: Completion174851
Node: Customization176322
Node: In-buffer settings176907
Node: The very busy C-c C-c key180328
Node: Clean view181972
Node: TTY keys184549
Node: Interaction186158
Node: Cooperation186555
Node: Conflicts188422
Node: Bugs190014
Node: Extensions and Hacking191637
Node: Extensions192123
Node: Dynamic blocks193693
Node: History and Acknowledgments195620
Node: Index200628
Node: Key Index227059
Ref: Setting tags-Footnote-1109271
Ref: Setting tags-Footnote-2109383
Node: Tag searches109463
Node: Agenda views111474
Node: Agenda files113567
Ref: Agenda files-Footnote-1114527
Ref: Agenda files-Footnote-2114676
Node: Agenda dispatcher114869
Node: Weekly/Daily agenda116486
Node: Calendar/Diary integration117451
Node: Global TODO list118789
Node: Matching headline tags120949
Node: Timeline122007
Node: Presentation and sorting122670
Node: Categories123448
Node: Time-of-day specifications124112
Node: Sorting of agenda items126090
Node: Agenda commands127372
Node: Custom agenda views133260
Node: Storing searches133935
Node: Block agenda135847
Node: Setting Options137077
Node: Batch processing139789
Node: Embedded LaTeX140919
Ref: Embedded LaTeX-Footnote-1142011
Node: Math symbols142201
Node: Subscripts and Superscripts142966
Node: LaTeX fragments143810
Ref: LaTeX fragments-Footnote-1145918
Node: Processing LaTeX fragments146180
Node: CDLaTeX mode147126
Ref: CDLaTeX mode-Footnote-1149610
Node: Exporting149758
Node: ASCII export151072
Node: HTML export152362
Node: XOXO export155198
Node: iCalendar export155637
Node: Text interpretation157460
Node: Comment lines157939
Node: Enhancing text158410
Node: Export options160102
Node: Publishing161769
Ref: Publishing-Footnote-1162565
Node: Configuration162761
Node: Project alist163479
Node: Sources and destinations164545
Node: Selecting files165275
Node: Publishing action166023
Node: Publishing options167256
Node: Publishing links169408
Node: Project page index170921
Node: Sample configuration171699
Node: Simple example172191
Node: Complex example172864
Node: Triggering publication174940
Node: Miscellaneous175625
Node: Completion176259
Node: Customization177730
Node: In-buffer settings178315
Node: The very busy C-c C-c key181736
Node: Clean view183380
Node: TTY keys185957
Node: Interaction187566
Node: Cooperation187963
Node: Conflicts189830
Node: Bugs191422
Node: Extensions and Hacking193045
Node: Extensions193531
Node: Dynamic blocks195101
Node: History and Acknowledgments197028
Node: Index202036
Node: Key Index228686

End Tag Table

135
org.el
View File

@ -5,7 +5,7 @@
;; Author: Carsten Dominik <dominik at science dot uva dot nl>
;; Keywords: outlines, hypermedia, calendar, wp
;; Homepage: http://www.astro.uva.nl/~dominik/Tools/org/
;; Version: 4.51
;; Version: 4.52
;;
;; This file is part of GNU Emacs.
;;
@ -61,6 +61,12 @@
;;
;; Recent changes
;; --------------
;; Version 4.52
;; - TAG matches can also specify conditions on TODO keywords.
;; - The fast tag interface allows setting tags that are not in the
;; predefined list.
;; - Bug fixes.
;;
;; Version 4.51
;; - Link abbreviations (manual section 4.5).
;; - More control over how agenda is displayed. See the new variables
@ -143,7 +149,7 @@
;;; Customization variables
(defvar org-version "4.51"
(defvar org-version "4.52"
"The version number of the file org.el.")
(defun org-version ()
(interactive)
@ -1676,7 +1682,7 @@ other-window Use `switch-to-buffer-other-window' to display agenda.
reorganize-frame Show only two windows on the current frame, the current
window and the agenda. Also, if the option
`org-fit-agenda-window' is set, resize the agenda window to
try to as much as possible of the buffer content.
try to show as much as possible of the buffer content.
See also the variable `org-agenda-restore-windows-after-quit'."
:group 'org-agenda-setup
:type '(choice
@ -9237,7 +9243,8 @@ MATCH can contain positive and negative selection of tags, like
(org-show-hierarchy-above nil))
(org-scan-tags 'sparse-tree (cdr (org-make-tags-matcher match)))))
(defun org-make-tags-matcher (match)
;; FIXME: remove this function.
(defun org-make-tags-matcher-old (match)
"Create the TAGS matcher form for the tags-selecting string MATCH."
(unless match
;; Get a new match request, with completion
@ -9266,6 +9273,76 @@ MATCH can contain positive and negative selection of tags, like
;; Return the string and lisp forms of the matcher
(cons match0 matcher)))
(defun org-make-tags-matcher (match)
"Create the TAGS//TODO matcher form for the selection string MATCH."
(unless match
;; Get a new match request, with completion
(setq org-last-tags-completion-table
(or org-tag-alist
org-last-tags-completion-table))
(setq match (completing-read
"Match: " 'org-tags-completion-function nil nil nil
'org-tags-history))) ; FIXME: SHould we have a separate history for this?
;; Parse the string and create a lisp form
(let ((match0 match) minus tag mm
tagsmatch todomatch tagsmatcher todomatcher kwd matcher
orterms term orlist)
(if (string-match "//" match)
;; match contains also a todo-matching request
(setq tagsmatch (substring match 0 (match-beginning 0))
todomatch (substring match (match-end 0)))
;; only matching tags
(setq tagsmatch match todomatch nil))
;; Make the tags matcher
(if (or (not tagsmatch) (not (string-match "\\S-" tagsmatch)))
(setq tagsmatcher t)
(setq orterms (org-split-string tagsmatch "|") orlist nil)
(while (setq term (pop orterms))
(while (string-match "^&?\\([-+:]\\)?\\([A-Za-z_@0-9]+\\)" term)
(setq minus (and (match-end 1)
(equal (match-string 1 term) "-"))
tag (match-string 2 term)
term (substring term (match-end 0))
mm (list 'member (downcase tag) 'tags-list)
mm (if minus (list 'not mm) mm))
(push mm tagsmatcher))
(push (if (> (length tagsmatcher) 1)
(cons 'and tagsmatcher)
(car tagsmatcher))
orlist)
(setq tagsmatcher nil))
(setq tagsmatcher (if (> (length orlist) 1) (cons 'or orlist) (car orlist))))
;; Make the todo matcher ;; FIXME: reduce syntax richness?
(if (or (not todomatch) (not (string-match "\\S-" todomatch)))
(setq todomatcher t)
(setq orterms (org-split-string todomatch "|") orlist nil)
(while (setq term (pop orterms))
(while (string-match "^&?\\([-+:]\\)?\\([A-Za-z_@0-9]+\\)" term)
(setq minus (and (match-end 1)
(equal (match-string 1 term) "-"))
kwd (match-string 2 term)
term (substring term (match-end 0))
mm (list 'equal 'todo kwd)
mm (if minus (list 'not mm) mm))
(push mm todomatcher))
(push (if (> (length todomatcher) 1)
(cons 'and todomatcher)
(car todomatcher))
orlist)
(setq todomatcher nil))
(setq todomatcher (if (> (length orlist) 1)
(cons 'or orlist) (car orlist))))
;; Return the string and lisp forms of the matcher
(setq matcher (if todomatcher
(list 'and tagsmatcher todomatcher)
tagsmatcher))
(cons match0 matcher)))
;;;###autoload
(defun org-tags-view (&optional todo-only match)
"Show all headlines for all `org-agenda-files' matching a TAGS criterion.
@ -9342,8 +9419,9 @@ With prefix ARG, realign all tags in headings in the current buffer."
(if arg
(save-excursion
(goto-char (point-min))
(while (re-search-forward re nil t)
(org-set-tags nil t))
(let (buffer-invisibility-spec) ; Emacs 21 compatibility
(while (re-search-forward re nil t)
(org-set-tags nil t)))
(message "All tags realigned to column %d" org-tags-column))
(if just-align
(setq tags current)
@ -9437,6 +9515,8 @@ Returns the new tags string, or nil to not change the current settings."
(lambda (x)
(if (stringp (car x)) (string-width (car x)) 0))
table)))
(buf (current-buffer))
(buffer-tags nil)
(fwidth (+ maxlen 3 1 3))
(ncol (/ (- (window-width) 4) fwidth))
(i-face 'org-done)
@ -9496,8 +9576,8 @@ Returns the new tags string, or nil to not change the current settings."
(setq rtn
(catch 'exit
(while t
(message "[key]:Toggle SPC: clear current RET accept%s"
(if groups " [!] ignore goups" ""))
(message "[a-z..]:Toggle [SPC] clear [RET] accept [TAB] free tag%s"
(if groups " [!] no goups" ""))
(setq c (read-char-exclusive))
(cond
((= c ?\r) (throw 'exit t))
@ -9509,6 +9589,19 @@ Returns the new tags string, or nil to not change the current settings."
(and (= c ?q) (not (rassoc c ntable))))
(setq quit-flag t))
((= c ?\ ) (setq current nil))
((= c ?\t)
(condition-case nil
(setq tg (completing-read
"Tag: "
(or buffer-tags
(with-current-buffer buf
(org-get-buffer-tags)))))
(quit (setq tg "")))
(when (string-match "\\S-" tg)
(add-to-list 'buffer-tags (list tg))
(if (member tg current)
(setq current (delete tg current))
(push tg current))))
((setq e (rassoc c ntable) tg (car e))
(if (member tg current)
(setq current (delete tg current))
@ -9517,7 +9610,7 @@ Returns the new tags string, or nil to not change the current settings."
(mapcar (lambda (x)
(setq current (delete x current)))
g)))
(setq current (cons tg current)))))
(push tg current))))
;; Create a sorted list
(setq current
(sort current
@ -9821,7 +9914,6 @@ optional argument IN-EMACS is non-nil, Emacs will visit the file."
(t
(browse-url-at-point))))))
(defun org-link-expand-abbrev (link)
"Apply replacements as defined in `org-link-abbrev-alist."
(if (string-match "^\\([a-zA-Z]+\\)\\(::\\(.*\\)\\)?$" link)
@ -13967,6 +14059,11 @@ translations. There is currently no way for users to extend this.")
(while (re-search-forward "^#.*?\\(<<<?[^>\r\n]+>>>?\\).*" nil t)
(replace-match "\\1(INVISIBLE)"))
;; Remove comments
(goto-char (point-min))
(while (re-search-forward "^#.*\n?" nil t)
(replace-match ""))
;; Find matches for radio targets and turn them into internal links
(goto-char (point-min))
(when re-radio
@ -14003,10 +14100,16 @@ translations. There is currently no way for users to extend this.")
(match-string 1) "[[" (match-string 2) ":" (match-string 3) "]]")
t t))
(goto-char (point-min))
(while (re-search-forward "\\[\\[\\([^]]+\\)\\]" nil t)
(replace-match (concat "[[" (save-match-data
(org-link-expand-abbrev (match-string 1)))
"]")))
(while (re-search-forward org-bracket-link-regexp nil t)
(replace-match
(concat "[[" (save-match-data
(org-link-expand-abbrev (match-string 1)))
"]"
(if (match-end 3)
(match-string 2)
(concat "[" (match-string 1) "]"))
"]")
t t))
;; Find multiline emphasis and put them into single line
(when (memq :emph-multiline parameters)
@ -14015,10 +14118,6 @@ translations. There is currently no way for users to extend this.")
(subst-char-in-region (match-beginning 0) (match-end 0) ?\n ?\ t)
(goto-char (1- (match-end 0)))))
;; Remove comments
(goto-char (point-min))
(while (re-search-forward "^#.*\n?" nil t)
(replace-match ""))
(setq rtn (buffer-string)))
(kill-buffer " org-mode-tmp")
rtn))

BIN
org.pdf

Binary file not shown.

118
org.texi
View File

@ -3,8 +3,8 @@
@setfilename ../info/org
@settitle Org Mode Manual
@set VERSION 4.51
@set DATE September 2006
@set VERSION 4.52
@set DATE October 2006
@dircategory Emacs
@direntry
@ -2884,18 +2884,26 @@ Org will support tag insertion based on a @emph{list of tags}. By
default this list is constructed dynamically, containing all tags
currently used in the buffer. You may also globally specify a hard list
of tags with the variable @code{org-tag-alist}. Finally you can set
the allowed tags for a given file with lines like
the default tags for a given file with lines like
@example
#+TAGS: @@WORK @@HOME @@TENNISCLUB
#+TAGS: Laptop Car PC Sailboat
@end example
The default support method is minibuffer completion. However, Org-mode
also implements a much better method: @emph{fast tag selection}. This
method allows to select and deselect tags with a single key per tag. To
function efficiently, you should assign unique keys to all tags. This
can be done globally with
If you have globally defined your preferred set of tags using the
variable @code{org-tag-alist}, but would like to use a dynamic tag list
in a specific file: Just add an empty TAGS option line to that file:
@example
#+TAGS:
@end example
The default support method for entering tags is minibuffer completion.
However, Org-mode also implements a much better method: @emph{fast tag
selection}. This method allows to select and deselect tags with a
single key per tag. To function efficiently, you should assign unique
keys to most tags. This can be done globally with
@lisp
(setq org-tag-alist '(("@@WORK" . ?w) ("@@HOME" . ?h) ("Laptop" . ?l)))
@ -2927,26 +2935,36 @@ If at least one tag has a selection key, pressing @kbd{C-c C-c} will
automatically present you with a special interface, listing inherited
tags, the tags of the current headline, and a list of all legal tags
with corresponding keys@footnote{Keys will automatically assigned to
tags which have no configured keys.}. Pressing keys for the tags will
add or remove them from the list of tags in the current line. Selecting
a tag in a group of mutually exclusive tags will turn off any other tags
from that group. @key{SPC} clears all tags for this line, @kbd{RET}
accepts the modified set, and @kbd{C-g} aborts without installing
changes. This method lets you assign tags to a headline with very few
keys. With the above setup, you could clear the current tags and set
@samp{@@HOME}, @samp{Laptop} and @samp{PC} tags with just the following
keys: @kbd{C-c C-c @key{SPC} h l p @key{RET}}. Switching from
@samp{@@HOME} to @samp{@@WORK} would be done with @kbd{C-c C-c w
@key{RET}}.
tags which have no configured keys.}. In this interface, you can use
the following keys:
What if you have globally defined your preferred set of tags using the
variable @code{org-tag-alist}, but would like to use a dynamic tag list
in a specific file? Just add an empty TAGS option line to that file:
@example
#+TAGS:
@end example
@table @kbd
@item a-z...
Pressing keys assigned to tags will add or remove them from the list of
tags in the current line. Selecting a tag in a group of mutually
exclusive tags will turn off any other tags from that group.
@kindex @key{TAB}
@item @key{TAB}
Enter a tag in the minibuffer, even if the tag is not in the predefined
list. You will be able to complete on all tags present in the buffer.
@kindex @key{SPC}
@item @key{SPC}
Clear all tags for this line.
@kindex @key{RET}
@item @key{RET}
Accept the modified set.
@item C-g
Abort without installing changes.
@end table
@noindent
This method lets you assign tags to a headline with very few keys. With
the above setup, you could clear the current tags and set @samp{@@HOME},
@samp{Laptop} and @samp{PC} tags with just the following keys: @kbd{C-c
C-c @key{SPC} h l p @key{RET}}. Switching from @samp{@@HOME} to
@samp{@@WORK} would be done with @kbd{C-c C-c w @key{RET}}. Adding the
non-predefined tag @samp{Sarah} could be done with @kbd{C-c C-c
@key{TAB} S a r a h @key{RET} @key{RET}}.
@node Tag searches, , Setting tags, Tags
@ -2972,17 +2990,45 @@ only TODO items and force checking subitems (see variable
@code{org-tags-match-list-sublevels}).
@end table
@cindex Boolean logic, for tag searches
A @i{tags} search string can use Boolean operators @samp{&} for AND and
@samp{|} for OR. @samp{&} binds more strongly than @samp{|}.
Parenthesis are currently not implemented. A tag may also be preceded
by @samp{-}, to select against it, and @samp{+} is syntactic sugar for
positive selection. The AND operator @samp{&} is optional when @samp{+}
or @samp{-} is present. For example, @samp{+WORK-BOSS} would select all
headlines that are tagged @samp{:WORK:}, but discard those also tagged
@samp{:BOSS:}. The search string @samp{WORK|LAPTOP} selects all lines
tagged @samp{:WORK:} or @samp{:LAPTOP:}. The string
@samp{WORK|LAPTOP&NIGHT} requires that the @samp{:LAPTOP:} lines are
also tagged @samp{NIGHT}.
or @samp{-} is present. Examples:
@table @samp
@item +WORK-BOSS
Select all headlines that are tagged @samp{:WORK:}, but discard those also tagged
@samp{:BOSS:}.
@item WORK|LAPTOP
Selects lines tagged @samp{:WORK:} or @samp{:LAPTOP:}.
@item WORK|LAPTOP&NIGHT
Like the previous example, but require the @samp{:LAPTOP:} lines to be
tagged also @samp{NIGHT}.
@end table
@cindex TODO keyword matching, with tags search
If you are using multi-state TODO keywords (@pxref{TODO extensions}), it
can be useful to also match on the TODO keyword. This can be done by
adding a condition after a double slash to a tags match. The syntax is
similar to the tag matches, but should be applied with consideration:
For example, a positive selection on several TODO keywords can not
meaningfully be combined with boolean AND. However, @emph{negative
selection} combined with AND can be meaningful. Examples:
@table @samp
@item WORK//WAITING
Select @samp{:WORK:}-tagged TODO lines with the specific TODO
keyword @samp{WAITING}.
@item WORK//-WAITING-NEXT
Select @samp{:WORK:}-tagged TODO lines that are neither @samp{WAITING}
nor @samp{NEXT}
@item WORK//+WAITING|+NEXT
Select @samp{:WORK:}-tagged TODO lines that are either @samp{WAITING} or
@samp{NEXT}.
@end table
@node Agenda views, Embedded LaTeX, Tags, Top
@chapter Agenda Views
@ -3188,6 +3234,7 @@ agenda files (@pxref{Agenda views}) into a single buffer. The buffer is in
the TODO entries directly from that buffer (@pxref{Agenda commands}).
@kindex C-c a T
@item C-c a T
@cindex TODO keyword matching
Like the above, but allows selection of a specific TODO keyword. You can
also do this by specifying a prefix argument to @kbd{C-c a t}. With a
@kbd{C-u} prefix you are prompted for a keyword. With a numeric
@ -3196,7 +3243,9 @@ prefix, the Nth keyword in @code{org-todo-keywords} is selected.
The @kbd{r} key in the agenda buffer regenerates it, and you can give
a prefix argument to this command to change the selected TODO keyword,
for example @kbd{3 r}. If you often need a search for a specific
keyword, define a custom command for it (@pxref{Agenda dispatcher}).
keyword, define a custom command for it (@pxref{Agenda dispatcher}).@*
Matching specific TODO keywords can also be done as part of a tags
search (@pxref{Tag searches}).
@end table
Remote editing of TODO items means that you can change the state of a
@ -3241,7 +3290,8 @@ define a custom command for it (@pxref{Agenda dispatcher}).
@item C-c a M
Like @kbd{C-c a m}, but only select headlines that are also TODO items
and force checking subitems (see variable
@code{org-tags-match-list-sublevels}).
@code{org-tags-match-list-sublevels}). Matching specific todo keywords
together with a tags match is also possible, see @ref{Tag searches}.
@end table
The commands available in the tags list are described in @ref{Agenda

Binary file not shown.

View File

@ -1,5 +1,5 @@
% Reference Card for Org Mode
\def\orgversionnumber{4.51}
\def\orgversionnumber{4.52}
\def\year{2006}
%
%**start of header

View File

@ -1,5 +1,5 @@
This directory contains files that are necessary or at least useful
companions for Org-mode:
companions for Org-mode under XEmacs:
noutline.el

View File

@ -44,6 +44,7 @@
;;; Code:
(require 'xemacs)
(require 'easymenu)
;; XEmacs and compatibility