Release 4.52
This commit is contained in:
parent
fdf165e556
commit
d790f20ba9
266
org
266
org
|
@ -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
135
org.el
|
@ -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))
|
||||
|
|
118
org.texi
118
org.texi
|
@ -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
|
||||
|
|
BIN
orgcard.pdf
BIN
orgcard.pdf
Binary file not shown.
|
@ -1,5 +1,5 @@
|
|||
% Reference Card for Org Mode
|
||||
\def\orgversionnumber{4.51}
|
||||
\def\orgversionnumber{4.52}
|
||||
\def\year{2006}
|
||||
%
|
||||
%**start of header
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -44,6 +44,7 @@
|
|||
|
||||
;;; Code:
|
||||
|
||||
(require 'xemacs)
|
||||
(require 'easymenu)
|
||||
|
||||
;; XEmacs and compatibility
|
||||
|
|
Loading…
Reference in New Issue