Release 4.51

This commit is contained in:
Carsten Dominik 2008-01-31 11:32:45 +01:00
parent d45806cc97
commit fdf165e556
6 changed files with 680 additions and 273 deletions

513
org
View File

@ -5,7 +5,7 @@ START-INFO-DIR-ENTRY
* Org Mode: (org). outline-based notes management and organizer * Org Mode: (org). outline-based notes management and organizer
END-INFO-DIR-ENTRY END-INFO-DIR-ENTRY
This manual is for Org-mode (version 4.50). This manual is for Org-mode (version 4.51).
Copyright (C) 2004, 2005, 2006 Free Software Foundation 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 Org Mode Manual
*************** ***************
This manual is for Org-mode (version 4.50). This manual is for Org-mode (version 4.51).
Copyright (C) 2004, 2005, 2006 Free Software Foundation Copyright (C) 2004, 2005, 2006 Free Software Foundation
@ -111,6 +111,7 @@ Hyperlinks
* Internal links:: Links to other places in the current file * Internal links:: Links to other places in the current file
* External links:: URL-like links to the world * External links:: URL-like links to the world
* Handling links:: Creating, inserting and following * Handling links:: Creating, inserting and following
* Link abbreviations:: Shortcuts for writing complex links
* Search options:: Linking to a specific location * Search options:: Linking to a specific location
* Custom searches:: When the default search is not enough * Custom searches:: When the default search is not enough
* Remember:: Org-trees store quick notes * Remember:: Org-trees store quick notes
@ -140,6 +141,10 @@ Timestamps
* Creating timestamps:: Commands which insert timestamps * Creating timestamps:: Commands which insert timestamps
* Progress logging:: Documenting when what work was done. * Progress logging:: Documenting when what work was done.
Creating timestamps
* The date/time prompt::
Progress Logging Progress Logging
* Closing items:: When was this entry marked DONE? * Closing items:: When was this entry marked DONE?
@ -1445,6 +1450,7 @@ links to other files, Usenet articles, emails, and much more.
* Internal links:: Links to other places in the current file * Internal links:: Links to other places in the current file
* External links:: URL-like links to the world * External links:: URL-like links to the world
* Handling links:: Creating, inserting and following * Handling links:: Creating, inserting and following
* Link abbreviations:: Shortcuts for writing complex links
* Search options:: Linking to a specific location * Search options:: Linking to a specific location
* Custom searches:: When the default search is not enough * Custom searches:: When the default search is not enough
* Remember:: Org-trees store quick notes * Remember:: Org-trees store quick notes
@ -1553,9 +1559,11 @@ File: org, Node: CamelCase links, Prev: Radio targets, Up: Internal links
Org-mode also supports CamelCase words as links. This feature is not Org-mode also supports CamelCase words as links. This feature is not
turned on by default because of the inconsistencies this system suffers turned on by default because of the inconsistencies this system suffers
from. To activate CamelCase words as links, you need to customize the from. It is also possible that this feature will disappear entirely in
option `org-activate-links'. A CamelCase word then leads to a text a future version of Org-mode. To activate CamelCase words as links, you
search such that `CamelCaseLink' is equivalent to `[[camel case link]]'. need to customize the option `org-activate-links'. A CamelCase word
then leads to a text search such that `CamelCaseLink' is equivalent to
`[[camel case link]]'.
 
File: org, Node: External links, Next: Handling links, Prev: Internal links, Up: Hyperlinks File: org, Node: External links, Next: Handling links, Prev: Internal links, Up: Hyperlinks
@ -1601,7 +1609,7 @@ them as links. If spaces must be part of the link (for example in
end of the link, enclose them in angular brackets. end of the link, enclose them in angular brackets.
 
File: org, Node: Handling links, Next: Search options, Prev: External links, Up: Hyperlinks File: org, Node: Handling links, Next: Link abbreviations, Prev: External links, Up: Hyperlinks
4.4 Handling links 4.4 Handling links
================== ==================
@ -1678,7 +1686,8 @@ insert it into an org-mode file, and to follow the link.
Under Emacs 22, also `mouse-1' will follow a link. Under Emacs 22, also `mouse-1' will follow a link.
`mouse-3' `mouse-3'
Like `mouse-2', but force file links to be opened with Emacs. Like `mouse-2', but force file links to be opened with Emacs, and
internal links to be displayed in another window(2).
`C-c %' `C-c %'
Push the current position onto the mark ring, to be able to return Push the current position onto the mark ring, to be able to return
@ -1697,10 +1706,53 @@ the list of stored links. To keep it in the list later use, use a
triple `C-u' prefix to `C-c C-l', or configure the option triple `C-u' prefix to `C-c C-l', or configure the option
`org-keep-stored-link-after-insertion'. `org-keep-stored-link-after-insertion'.
 (2) See the variable `org-display-internal-link-with-indirect-buffer'
File: org, Node: Search options, Next: Custom searches, Prev: Handling links, Up: Hyperlinks
4.5 Search options in file links 
File: org, Node: Link abbreviations, Next: Search options, Prev: Handling links, Up: Hyperlinks
4.5 Link abbreviatons
=====================
Long URLs can be cumbersome to type, and often many similar links are
needed in a document. For this you can use link abbreviations. An
abbreviated link looks like this
[[linkword::tag][description]]
where the tag is optional. Such abbreviations are resolved according to
the information in the variable `org-link-abbrev-alist' that relates
the linkwords to replacement text. Here is an example:
(setq org-link-abbrev-alist
'(("bugzilla" . "http://10.1.2.9/bugzilla/show_bug.cgi?id=")
("google" . "http://www.google.com/search?q=")
("ads" . "http://adsabs.harvard.edu/cgi-bin/
nph-abs_connect?author=%s&db_key=AST")))
If the replacement text contains the string `%s', it will be
replaced with the tag. Otherwise the tag will be appended to the string
in order to create the link. You may also specify a function that will
be called with the tag as the only argument to create the link.
With the above setting, you could link to a specific bug with
`[[bugzilla::129]]', search the web for OrgMode with
`[[google::OrgMode]]' and find out what the Org-mode author is doing
besides Emacs hacking with `[[ads::Dominik,C]]'.
If you need special abbreviations just for a single Org-mode buffer,
you can define them in the file with
#+LINK: bugzilla http://10.1.2.9/bugzilla/show_bug.cgi?id=
#+LINK: google http://www.google.com/search?q=%s
In-buffer completion *note Completion:: can be used after `[' to
complete link abbreviations.

File: org, Node: Search options, Next: Custom searches, Prev: Link abbreviations, Up: Hyperlinks
4.6 Search options in file links
================================ ================================
File links can contain additional information to make Emacs jump to a File links can contain additional information to make Emacs jump to a
@ -1750,7 +1802,7 @@ single colon.
 
File: org, Node: Custom searches, Next: Remember, Prev: Search options, Up: Hyperlinks File: org, Node: Custom searches, Next: Remember, Prev: Search options, Up: Hyperlinks
4.6 Custom Searches 4.7 Custom Searches
=================== ===================
The default mechanism for creating search strings and for doing the The default mechanism for creating search strings and for doing the
@ -1772,7 +1824,7 @@ implementation example. Search for `BibTeX links' in the source file.
 
File: org, Node: Remember, Prev: Custom searches, Up: Hyperlinks File: org, Node: Remember, Prev: Custom searches, Up: Hyperlinks
4.7 Remember 4.8 Remember
============ ============
Another way to create org entries with links to other files is through Another way to create org entries with links to other files is through
@ -2303,12 +2355,37 @@ format.
end. With prefix arg, insert result after the time range (in a end. With prefix arg, insert result after the time range (in a
table: into the following column). table: into the following column).
When Org-mode prompts for a date/time, the function reading your * Menu:
input will replace anything you choose not to specify with the current
date and time. For details, see the documentation string of * The date/time prompt::
`org-read-date'. Also, a calender will pop up to allow selecting a
date. The calendar can be fully controlled from the minibuffer, and a 
date can be selected with the following commands: File: org, Node: The date/time prompt, Prev: Creating timestamps, Up: Creating timestamps
6.2.1 The date/time prompt
--------------------------
When Org-mode prompts for a date/time, the prompt suggests to enter an
ISO date. But it will in fact accept any string containing some date
and/or time information. You can, for example, use `C-y' to paste a
(possibly multi-line) string copied from an email message. Org-mode
will find whatever information is in there and will replace anything not
specified with the current date and time. For example:
3-2-5 --> 2003-02-05
feb 15 --> currentyear-02-15
sep 12 9 --> 2009-09-12
12:45 --> today 12:45
22 sept 0:34 --> currentyear-09-22 0:34
12 --> currentyear-currentmonth-12
Fri --> nearest Friday (today or later)
The function understands English month and weekday abbreviations. If
you want to use unabbreviated names and/or other languages, configure
the variables `parse-time-months' and `parse-time-weekdays'.
Parallel to the minibuffer prompt, a calendar is popped up(1). You
can control the calendar fully from the minibuffer:
`<' `<'
Scroll calendar backwards by one month. Scroll calendar backwards by one month.
@ -2340,6 +2417,11 @@ date can be selected with the following commands:
`<RET>' `<RET>'
Choose date in calendar (only if nothing typed into minibuffer). Choose date in calendar (only if nothing typed into minibuffer).
---------- Footnotes ----------
(1) If you don't need/want the calendar, configure the variable
`org-popup-calendar-for-date-prompt'.
 
File: org, Node: Progress logging, Prev: Creating timestamps, Up: Timestamps File: org, Node: Progress logging, Prev: Creating timestamps, Up: Timestamps
@ -2649,6 +2731,10 @@ This buffer is read-only, but provides commands to visit the
corresponding locations in the original Org-mode files, and even to corresponding locations in the original Org-mode files, and even to
edit these files remotely. edit these files remotely.
Two variables control how the agenda buffer is displayed and whether
the window configuration is restored when the agenda exits:
`org-agenda-window-setup' and `org-agenda-restore-windows-after-quit'.
* Menu: * Menu:
* Agenda files:: Files being searched for agenda information * Agenda files:: Files being searched for agenda information
@ -4280,6 +4366,9 @@ buffer and use the key to complete text right there.
in-buffer option, *note Setting tags::), or it is created in-buffer option, *note Setting tags::), or it is created
dynamically from all tags used in the current buffer. dynamically from all tags used in the current buffer.
* After `[', complete link abbreviations (*note Link
abbreviations::).
* After `#+', complete the special keywords like `TYP_TODO' or * After `#+', complete the special keywords like `TYP_TODO' or
`OPTIONS' which set file-specific options for Org-mode. When `OPTIONS' which set file-specific options for Org-mode. When
the option keyword is already complete, pressing `M-<TAB>' the option keyword is already complete, pressing `M-<TAB>'
@ -4359,6 +4448,11 @@ file is visited again in a new Emacs session.
tags in this file, and (potentially) the corresponding _fast tag tags in this file, and (potentially) the corresponding _fast tag
selection_ keys. The corresponding variable is `org-tag-alist'. selection_ keys. The corresponding variable is `org-tag-alist'.
`#+LINK: linkword replace'
These lines (several are allowed) specify link abbreviations.
*Note Link abbreviations::. The corresponding variable is
`org-link-abbrev-alist'.
`#+CATEGORY:' `#+CATEGORY:'
This line sets the category for the agenda file. The category This line sets the category for the agenda file. The category
applies for all subsequent lines until the next `#+CATEGORY' line, applies for all subsequent lines until the next `#+CATEGORY' line,
@ -4873,6 +4967,8 @@ if I have forgotten someone, please accept my apologies and let me know.
* Daniel Sinder came up with the idea of internal archiving by * Daniel Sinder came up with the idea of internal archiving by
locking subtrees. locking subtrees.
* Dale Smith proposed link abbreviations.
* David O'Toole wrote `org-publish.el' and drafted the manual * David O'Toole wrote `org-publish.el' and drafted the manual
chapter about publishing. chapter about publishing.
@ -4910,6 +5006,7 @@ Index
[index] [index]
* Menu: * Menu:
* abbreviation, links: Link abbreviations. (line 6)
* acknowledgments: History and Acknowledgments. * acknowledgments: History and Acknowledgments.
(line 6) (line 6)
* action, for publishing: Publishing action. (line 6) * action, for publishing: Publishing action. (line 6)
@ -4925,6 +5022,7 @@ Index
* agenda files, removing buffers: Agenda commands. (line 211) * agenda files, removing buffers: Agenda commands. (line 211)
* agenda views: Agenda views. (line 6) * agenda views: Agenda views. (line 6)
* agenda views, custom: Custom agenda views. (line 6) * agenda views, custom: Custom agenda views. (line 6)
* agenda, batch production: Batch processing. (line 6)
* agenda, with block views: Block agenda. (line 6) * agenda, with block views: Block agenda. (line 6)
* allout.el: Conflicts. (line 6) * allout.el: Conflicts. (line 6)
* angular brackets, around links: External links. (line 38) * angular brackets, around links: External links. (line 38)
@ -4939,6 +5037,8 @@ Index
* bold text: Enhancing text. (line 15) * bold text: Enhancing text. (line 15)
* bug reports: Feedback. (line 6) * bug reports: Feedback. (line 6)
* bugs: Bugs. (line 6) * bugs: Bugs. (line 6)
* C-c C-c, overview: The very busy C-c C-c key.
(line 6)
* calc package: Table calculations. (line 6) * calc package: Table calculations. (line 6)
* calc.el: Cooperation. (line 6) * calc.el: Cooperation. (line 6)
* calculations, in tables <1>: Table calculations. (line 6) * calculations, in tables <1>: Table calculations. (line 6)
@ -4947,11 +5047,13 @@ Index
* calendar commands, from agenda: Agenda commands. (line 172) * calendar commands, from agenda: Agenda commands. (line 172)
* calendar integration: Calendar/Diary integration. * calendar integration: Calendar/Diary integration.
(line 6) (line 6)
* calendar, for selecting date: Creating timestamps. (line 71) * calendar, for selecting date: The date/time prompt.
(line 25)
* CamelCase link completion: Completion. (line 6) * CamelCase link completion: Completion. (line 6)
* CamelCase links: Internal links. (line 6) * CamelCase links: Internal links. (line 6)
* CamelCase links, completion of: CamelCase links. (line 6) * CamelCase links, completion of: CamelCase links. (line 6)
* category: Categories. (line 6) * category: Categories. (line 6)
* CDLaTeX: CDLaTeX mode. (line 6)
* cdlatex.el: Cooperation. (line 29) * cdlatex.el: Cooperation. (line 29)
* checkbox statistics: Checkboxes. (line 23) * checkbox statistics: Checkboxes. (line 23)
* checkboxes: Checkboxes. (line 6) * checkboxes: Checkboxes. (line 6)
@ -4988,8 +5090,10 @@ Index
* cycling, of TODO states: TODO basics. (line 13) * cycling, of TODO states: TODO basics. (line 13)
* cycling, visibility: Visibility cycling. (line 6) * cycling, visibility: Visibility cycling. (line 6)
* daily agenda: Weekly/Daily agenda. (line 6) * daily agenda: Weekly/Daily agenda. (line 6)
* date stamps: Time stamps. (line 6) * date stamps <1>: Time stamps. (line 6)
* date, reading in minibuffer: Creating timestamps. (line 71) * date stamps: Timestamps. (line 6)
* date, reading in minibuffer: The date/time prompt.
(line 6)
* DEADLINE keyword: Time stamps. (line 43) * DEADLINE keyword: Time stamps. (line 43)
* deadlines: Time stamps. (line 6) * deadlines: Time stamps. (line 6)
* demotion, of subtrees: Structure editing. (line 6) * demotion, of subtrees: Structure editing. (line 6)
@ -5021,6 +5125,7 @@ Index
* file links: External links. (line 6) * file links: External links. (line 6)
* file links, searching: Search options. (line 6) * file links, searching: Search options. (line 6)
* file name completion: Handling links. (line 43) * file name completion: Handling links. (line 43)
* files for agenda: Agenda files. (line 6)
* files, adding to agenda list: Agenda files. (line 12) * files, adding to agenda list: Agenda files. (line 12)
* files, selecting for publishing: Selecting files. (line 6) * files, selecting for publishing: Selecting files. (line 6)
* fixed width: Enhancing text. (line 25) * fixed width: Enhancing text. (line 25)
@ -5072,29 +5177,36 @@ Index
* jumping, to headlines: Motion. (line 6) * jumping, to headlines: Motion. (line 6)
* keybindings, global: Activation. (line 6) * keybindings, global: Activation. (line 6)
* keyword options: Per file keywords. (line 6) * keyword options: Per file keywords. (line 6)
* LaTeX fragments: Export options. (line 25) * LaTeX fragments <1>: Export options. (line 25)
* LaTeX fragments: LaTeX fragments. (line 6)
* LaTeX fragments, export: Enhancing text. (line 18) * LaTeX fragments, export: Enhancing text. (line 18)
* LaTeX fragments, preview: Processing LaTeX fragments.
(line 6)
* LaTeX interpretation: Embedded LaTeX. (line 6) * LaTeX interpretation: Embedded LaTeX. (line 6)
* linebreak preservation: Export options. (line 25) * linebreak preservation: Export options. (line 25)
* linebreak, forced: Enhancing text. (line 32) * linebreak, forced: Enhancing text. (line 32)
* link abbreviations: Link abbreviations. (line 6)
* link completion: Handling links. (line 27) * link completion: Handling links. (line 27)
* link format: Link format. (line 6) * link format: Link format. (line 6)
* links, external: External links. (line 6) * links, external: External links. (line 6)
* links, handling: Handling links. (line 6)
* links, in HTML export: HTML export. (line 35) * links, in HTML export: HTML export. (line 35)
* links, internal: Internal links. (line 6) * links, internal: Internal links. (line 6)
* links, publishing: Publishing links. (line 6) * links, publishing: Publishing links. (line 6)
* links, returning to: Handling links. (line 84) * links, radio targets: Radio targets. (line 6)
* links, returning to: Handling links. (line 85)
* Lisp forms, as table formulas: Lisp formulas. (line 6) * Lisp forms, as table formulas: Lisp formulas. (line 6)
* lists, hand-formatted: Enhancing text. (line 11) * lists, hand-formatted: Enhancing text. (line 11)
* lists, ordered: Plain lists. (line 6) * lists, ordered: Plain lists. (line 6)
* lists, plain: Plain lists. (line 6) * lists, plain: Plain lists. (line 6)
* logging, of progress: Progress logging. (line 6) * logging, of progress: Progress logging. (line 6)
* maintainer: Feedback. (line 6) * maintainer: Feedback. (line 6)
* mark ring: Handling links. (line 80) * mark ring: Handling links. (line 81)
* marking characters, tables: Advanced features. (line 34) * marking characters, tables: Advanced features. (line 34)
* matching, of tags: Matching headline tags. * matching, of tags: Matching headline tags.
(line 6) (line 6)
* matching, tags: Tags. (line 6) * matching, tags: Tags. (line 6)
* math symbols: Math symbols. (line 6)
* MH-E links: External links. (line 6) * MH-E links: External links. (line 6)
* minor mode for tables: orgtbl-mode. (line 6) * minor mode for tables: orgtbl-mode. (line 6)
* mode, for calc: Formula syntax. (line 34) * mode, for calc: Formula syntax. (line 34)
@ -5140,6 +5252,7 @@ Index
* promotion, of subtrees: Structure editing. (line 6) * promotion, of subtrees: Structure editing. (line 6)
* publishing: Publishing. (line 6) * publishing: Publishing. (line 6)
* quoted HTML tags: Export options. (line 25) * quoted HTML tags: Export options. (line 25)
* radio targets: Radio targets. (line 6)
* ranges, time: Time stamps. (line 6) * ranges, time: Time stamps. (line 6)
* recomputing table fields: Column formulas. (line 27) * recomputing table fields: Column formulas. (line 27)
* region, active <1>: HTML export. (line 10) * region, active <1>: HTML export. (line 10)
@ -5155,6 +5268,8 @@ Index
* SCHEDULED keyword: Time stamps. (line 30) * SCHEDULED keyword: Time stamps. (line 30)
* scheduling: Time stamps. (line 6) * scheduling: Time stamps. (line 6)
* search option in file links: Search options. (line 6) * search option in file links: Search options. (line 6)
* search strings, custom: Custom searches. (line 6)
* searching for tags: Tag searches. (line 6)
* section-numbers: Export options. (line 25) * section-numbers: Export options. (line 25)
* setting tags: Setting tags. (line 6) * setting tags: Setting tags. (line 6)
* SHELL links: External links. (line 6) * SHELL links: External links. (line 6)
@ -5175,12 +5290,16 @@ Index
* structure of document: Document structure. (line 6) * structure of document: Document structure. (line 6)
* sublevels, inclusion into tags match: Tag inheritance. (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 31)
* subscript: Subscripts and Superscripts.
(line 6)
* subtree cycling: Visibility cycling. (line 10) * subtree cycling: Visibility cycling. (line 10)
* subtree visibility states: Visibility cycling. (line 10) * subtree visibility states: Visibility cycling. (line 10)
* subtree, cut and paste: Structure editing. (line 6) * subtree, cut and paste: Structure editing. (line 6)
* subtree, subtree visibility state: Visibility cycling. (line 10) * subtree, subtree visibility state: Visibility cycling. (line 10)
* subtrees, cut and paste: Structure editing. (line 6) * subtrees, cut and paste: Structure editing. (line 6)
* summary: Summary. (line 6) * summary: Summary. (line 6)
* superscript: Subscripts and Superscripts.
(line 6)
* syntax, of formulas: Formula syntax. (line 6) * syntax, of formulas: Formula syntax. (line 6)
* table editor, builtin: Built-in table editor. * table editor, builtin: Built-in table editor.
(line 6) (line 6)
@ -5196,10 +5315,14 @@ Index
* tags: Tags. (line 6) * tags: Tags. (line 6)
* tags view: Matching headline tags. * tags view: Matching headline tags.
(line 6) (line 6)
* tags, setting: Setting tags. (line 6)
* targets, for links: Internal links. (line 6)
* targets, radio: Radio targets. (line 6)
* tasks, breaking down: Breaking down tasks. (line 6) * tasks, breaking down: Breaking down tasks. (line 6)
* templates, for remember: Remember. (line 23) * templates, for remember: Remember. (line 23)
* TeX interpretation: Embedded LaTeX. (line 6) * TeX interpretation: Embedded LaTeX. (line 6)
* TeX macros: Export options. (line 25) * TeX macros <1>: Export options. (line 25)
* TeX macros: Math symbols. (line 6)
* TeX macros, export: Enhancing text. (line 18) * TeX macros, export: Enhancing text. (line 18)
* TeX symbol completion: Completion. (line 6) * TeX symbol completion: Completion. (line 6)
* TeX-like syntax for sub- and superscripts: Export options. (line 25) * TeX-like syntax for sub- and superscripts: Export options. (line 25)
@ -5207,8 +5330,10 @@ Index
(line 6) (line 6)
* time grid: Time-of-day specifications. * time grid: Time-of-day specifications.
(line 26) (line 26)
* time stamps: Time stamps. (line 6) * time stamps <1>: Time stamps. (line 6)
* time, reading in minibuffer: Creating timestamps. (line 71) * time stamps: Timestamps. (line 6)
* time, reading in minibuffer: The date/time prompt.
(line 6)
* time-of-day specification: Time-of-day specifications. * time-of-day specification: Time-of-day specifications.
(line 6) (line 6)
* time-sorted view: Timeline. (line 6) * time-sorted view: Timeline. (line 6)
@ -5260,10 +5385,12 @@ Key Index
* -: Agenda commands. (line 132) * -: Agenda commands. (line 132)
* .: Agenda commands. (line 94) * .: Agenda commands. (line 94)
* :: Agenda commands. (line 112) * :: Agenda commands. (line 112)
* <: Creating timestamps. (line 78) * <: The date/time prompt.
(line 28)
* <left>: Agenda commands. (line 91) * <left>: Agenda commands. (line 91)
* <RET> <1>: Agenda commands. (line 41) * <RET> <1>: Agenda commands. (line 41)
* <RET> <2>: Creating timestamps. (line 103) * <RET> <2>: The date/time prompt.
(line 53)
* <RET>: Built-in table editor. * <RET>: Built-in table editor.
(line 64) (line 64)
* <right>: Agenda commands. (line 86) * <right>: Agenda commands. (line 86)
@ -5275,7 +5402,8 @@ Key Index
* <TAB> <4>: Plain lists. (line 37) * <TAB> <4>: Plain lists. (line 37)
* <TAB>: Visibility cycling. (line 10) * <TAB>: Visibility cycling. (line 10)
* > <1>: Agenda commands. (line 154) * > <1>: Agenda commands. (line 154)
* >: Creating timestamps. (line 79) * >: The date/time prompt.
(line 29)
* ^: CDLaTeX mode. (line 33) * ^: CDLaTeX mode. (line 33)
* _: CDLaTeX mode. (line 33) * _: CDLaTeX mode. (line 33)
* `: CDLaTeX mode. (line 39) * `: CDLaTeX mode. (line 39)
@ -5289,8 +5417,8 @@ Key Index
* C-c !: Creating timestamps. (line 21) * C-c !: Creating timestamps. (line 21)
* C-c #: Checkboxes. (line 55) * C-c #: Checkboxes. (line 55)
* C-c $: Moving subtrees. (line 10) * C-c $: Moving subtrees. (line 10)
* C-c %: Handling links. (line 80) * C-c %: Handling links. (line 81)
* C-c &: Handling links. (line 84) * C-c &: Handling links. (line 85)
* C-c ' <1>: Editing/debugging formulas. * C-c ' <1>: Editing/debugging formulas.
(line 20) (line 20)
* C-c ': Built-in table editor. * C-c ': Built-in table editor.
@ -5448,7 +5576,8 @@ Key Index
(line 89) (line 89)
* M-S-<down> <2>: Plain lists. (line 59) * M-S-<down> <2>: Plain lists. (line 59)
* M-S-<down>: Structure editing. (line 33) * M-S-<down>: Structure editing. (line 33)
* M-S-<left> <1>: Creating timestamps. (line 100) * M-S-<left> <1>: The date/time prompt.
(line 50)
* M-S-<left> <2>: Built-in table editor. * M-S-<left> <2>: Built-in table editor.
(line 76) (line 76)
* M-S-<left> <3>: Plain lists. (line 65) * M-S-<left> <3>: Plain lists. (line 65)
@ -5456,7 +5585,8 @@ Key Index
* M-S-<RET> <1>: Checkboxes. (line 52) * M-S-<RET> <1>: Checkboxes. (line 52)
* M-S-<RET> <2>: Plain lists. (line 52) * M-S-<RET> <2>: Plain lists. (line 52)
* M-S-<RET>: Structure editing. (line 15) * M-S-<RET>: Structure editing. (line 15)
* M-S-<right> <1>: Creating timestamps. (line 97) * M-S-<right> <1>: The date/time prompt.
(line 47)
* M-S-<right> <2>: Built-in table editor. * M-S-<right> <2>: Built-in table editor.
(line 79) (line 79)
* M-S-<right> <3>: Plain lists. (line 65) * M-S-<right> <3>: Plain lists. (line 65)
@ -5466,7 +5596,8 @@ Key Index
* M-S-<up> <2>: Plain lists. (line 59) * M-S-<up> <2>: Plain lists. (line 59)
* M-S-<up>: Structure editing. (line 30) * M-S-<up>: Structure editing. (line 30)
* mouse-1 <1>: Agenda commands. (line 35) * mouse-1 <1>: Agenda commands. (line 35)
* mouse-1 <2>: Creating timestamps. (line 82) * mouse-1 <2>: The date/time prompt.
(line 32)
* mouse-1: Handling links. (line 72) * mouse-1: Handling links. (line 72)
* mouse-2 <1>: Agenda commands. (line 35) * mouse-2 <1>: Agenda commands. (line 35)
* mouse-2: Handling links. (line 72) * mouse-2: Handling links. (line 72)
@ -5483,23 +5614,31 @@ Key Index
* S: Agenda commands. (line 189) * S: Agenda commands. (line 189)
* s: Agenda commands. (line 83) * s: Agenda commands. (line 83)
* S-<down> <1>: Agenda commands. (line 132) * S-<down> <1>: Agenda commands. (line 132)
* S-<down> <2>: Creating timestamps. (line 58) * S-<down> <2>: The date/time prompt.
* S-<down> <3>: Priorities. (line 25) (line 41)
* S-<down> <3>: Creating timestamps. (line 58)
* S-<down> <4>: Priorities. (line 25)
* S-<down>: Plain lists. (line 55) * S-<down>: Plain lists. (line 55)
* S-<left> <1>: Agenda commands. (line 150) * S-<left> <1>: Agenda commands. (line 150)
* S-<left> <2>: Creating timestamps. (line 53) * S-<left> <2>: The date/time prompt.
(line 38)
* S-<left> <3>: Creating timestamps. (line 53)
* S-<left>: TODO basics. (line 20) * S-<left>: TODO basics. (line 20)
* S-<RET>: Built-in table editor. * S-<RET>: Built-in table editor.
(line 170) (line 170)
* S-<right> <1>: Agenda commands. (line 142) * S-<right> <1>: Agenda commands. (line 142)
* S-<right> <2>: Creating timestamps. (line 53) * S-<right> <2>: The date/time prompt.
(line 35)
* S-<right> <3>: Creating timestamps. (line 53)
* S-<right>: TODO basics. (line 20) * S-<right>: TODO basics. (line 20)
* S-<TAB> <1>: Built-in table editor. * S-<TAB> <1>: Built-in table editor.
(line 61) (line 61)
* S-<TAB>: Visibility cycling. (line 22) * S-<TAB>: Visibility cycling. (line 22)
* S-<up> <1>: Agenda commands. (line 126) * S-<up> <1>: Agenda commands. (line 126)
* S-<up> <2>: Creating timestamps. (line 58) * S-<up> <2>: The date/time prompt.
* S-<up> <3>: Priorities. (line 25) (line 44)
* S-<up> <3>: Creating timestamps. (line 58)
* S-<up> <4>: Priorities. (line 25)
* S-<up>: Plain lists. (line 55) * S-<up>: Plain lists. (line 55)
* T: Agenda commands. (line 107) * T: Agenda commands. (line 107)
* t: Agenda commands. (line 103) * t: Agenda commands. (line 103)
@ -5511,149 +5650,153 @@ Key Index
 
Tag Table: Tag Table:
Node: Top964 Node: Top964
Node: Introduction10124 Node: Introduction10239
Node: Summary10539 Node: Summary10654
Node: Installation12806 Node: Installation12921
Node: Activation14184 Node: Activation14299
Node: Feedback15433 Node: Feedback15548
Node: Document structure16202 Node: Document structure16317
Node: Outlines16976 Node: Outlines17091
Node: Headlines17636 Node: Headlines17751
Node: Visibility cycling18259 Node: Visibility cycling18374
Ref: Visibility cycling-Footnote-119734 Ref: Visibility cycling-Footnote-119849
Ref: Visibility cycling-Footnote-219792 Ref: Visibility cycling-Footnote-219907
Node: Motion19842 Node: Motion19957
Node: Structure editing20626 Node: Structure editing20741
Node: Archiving22735 Node: Archiving22850
Node: ARCHIVE tag23293 Node: ARCHIVE tag23408
Node: Moving subtrees25086 Node: Moving subtrees25201
Node: Sparse trees26127 Node: Sparse trees26242
Ref: Sparse trees-Footnote-128258 Ref: Sparse trees-Footnote-128373
Ref: Sparse trees-Footnote-228350 Ref: Sparse trees-Footnote-228465
Node: Plain lists28465 Node: Plain lists28580
Ref: Plain lists-Footnote-131990 Ref: Plain lists-Footnote-132105
Ref: Plain lists-Footnote-232347 Ref: Plain lists-Footnote-232462
Node: Tables32529 Node: Tables32644
Node: Built-in table editor33077 Node: Built-in table editor33192
Node: Narrow columns40685 Node: Narrow columns40800
Ref: Narrow columns-Footnote-142624 Ref: Narrow columns-Footnote-142739
Node: Table calculations42670 Node: Table calculations42785
Node: Formula syntax43990 Node: Formula syntax44105
Ref: Formula syntax-Footnote-146895 Ref: Formula syntax-Footnote-147010
Node: Lisp formulas47195 Node: Lisp formulas47310
Node: Column formulas47984 Node: Column formulas48099
Node: Advanced features49746 Node: Advanced features49861
Node: Named-field formulas53000 Node: Named-field formulas53115
Node: Editing/debugging formulas53640 Node: Editing/debugging formulas53755
Node: Appetizer55398 Node: Appetizer55513
Node: orgtbl-mode56501 Node: orgtbl-mode56616
Node: table.el56992 Node: table.el57107
Node: Hyperlinks57969 Node: Hyperlinks58084
Node: Link format58674 Node: Link format58857
Node: Internal links59967 Node: Internal links60150
Ref: Internal links-Footnote-161956 Ref: Internal links-Footnote-162139
Node: Radio targets62088 Node: Radio targets62271
Node: CamelCase links62803 Node: CamelCase links62986
Node: External links63301 Node: External links63580
Node: Handling links65432 Node: Handling links65711
Ref: Handling links-Footnote-170018 Ref: Handling links-Footnote-170363
Node: Search options70255 Ref: Handling links-Footnote-270600
Ref: Search options-Footnote-172029 Node: Link abbreviations70674
Node: Custom searches72110 Node: Search options72353
Node: Remember73158 Ref: Search options-Footnote-174131
Node: TODO items76848 Node: Custom searches74212
Node: TODO basics77830 Node: Remember75260
Node: TODO extensions79357 Node: TODO items78950
Node: Workflow states80152 Node: TODO basics79932
Node: TODO types81020 Node: TODO extensions81459
Ref: TODO types-Footnote-182678 Node: Workflow states82254
Node: Per file keywords82760 Node: TODO types83122
Ref: Per file keywords-Footnote-184214 Ref: TODO types-Footnote-184780
Node: Priorities84415 Node: Per file keywords84862
Node: Breaking down tasks85659 Ref: Per file keywords-Footnote-186316
Ref: Breaking down tasks-Footnote-186179 Node: Priorities86517
Node: Checkboxes86275 Node: Breaking down tasks87761
Node: Timestamps89011 Ref: Breaking down tasks-Footnote-188281
Node: Time stamps89401 Node: Checkboxes88377
Node: Creating timestamps92498 Node: Timestamps91113
Node: Progress logging95844 Node: Time stamps91503
Node: Closing items96374 Node: Creating timestamps94600
Node: Clocking work time97278 Node: The date/time prompt97143
Ref: Clocking work time-Footnote-1100841 Ref: The date/time prompt-Footnote-198827
Node: Tags100967 Node: Progress logging98933
Node: Tag inheritance101729 Node: Closing items99463
Node: Setting tags102666 Node: Clocking work time100367
Ref: Setting tags-Footnote-1105798 Ref: Clocking work time-Footnote-1103930
Ref: Setting tags-Footnote-2105910 Node: Tags104056
Node: Tag searches105990 Node: Tag inheritance104818
Node: Agenda views107199 Node: Setting tags105755
Node: Agenda files109088 Ref: Setting tags-Footnote-1108887
Ref: Agenda files-Footnote-1110048 Ref: Setting tags-Footnote-2108999
Ref: Agenda files-Footnote-2110197 Node: Tag searches109079
Node: Agenda dispatcher110390 Node: Agenda views110288
Node: Weekly/Daily agenda112007 Node: Agenda files112381
Node: Calendar/Diary integration112972 Ref: Agenda files-Footnote-1113341
Node: Global TODO list114310 Ref: Agenda files-Footnote-2113490
Node: Matching headline tags116362 Node: Agenda dispatcher113683
Node: Timeline117306 Node: Weekly/Daily agenda115300
Node: Presentation and sorting117969 Node: Calendar/Diary integration116265
Node: Categories118747 Node: Global TODO list117603
Node: Time-of-day specifications119411 Node: Matching headline tags119655
Node: Sorting of agenda items121389 Node: Timeline120599
Node: Agenda commands122671 Node: Presentation and sorting121262
Node: Custom agenda views128559 Node: Categories122040
Node: Storing searches129234 Node: Time-of-day specifications122704
Node: Block agenda131146 Node: Sorting of agenda items124682
Node: Setting Options132376 Node: Agenda commands125964
Node: Batch processing135088 Node: Custom agenda views131852
Node: Embedded LaTeX136218 Node: Storing searches132527
Ref: Embedded LaTeX-Footnote-1137310 Node: Block agenda134439
Node: Math symbols137500 Node: Setting Options135669
Node: Subscripts and Superscripts138265 Node: Batch processing138381
Node: LaTeX fragments139109 Node: Embedded LaTeX139511
Ref: LaTeX fragments-Footnote-1141217 Ref: Embedded LaTeX-Footnote-1140603
Node: Processing LaTeX fragments141479 Node: Math symbols140793
Node: CDLaTeX mode142425 Node: Subscripts and Superscripts141558
Ref: CDLaTeX mode-Footnote-1144909 Node: LaTeX fragments142402
Node: Exporting145057 Ref: LaTeX fragments-Footnote-1144510
Node: ASCII export146371 Node: Processing LaTeX fragments144772
Node: HTML export147661 Node: CDLaTeX mode145718
Node: XOXO export150497 Ref: CDLaTeX mode-Footnote-1148202
Node: iCalendar export150936 Node: Exporting148350
Node: Text interpretation152759 Node: ASCII export149664
Node: Comment lines153238 Node: HTML export150954
Node: Enhancing text153709 Node: XOXO export153790
Node: Export options155401 Node: iCalendar export154229
Node: Publishing157068 Node: Text interpretation156052
Ref: Publishing-Footnote-1157864 Node: Comment lines156531
Node: Configuration158060 Node: Enhancing text157002
Node: Project alist158778 Node: Export options158694
Node: Sources and destinations159844 Node: Publishing160361
Node: Selecting files160574 Ref: Publishing-Footnote-1161157
Node: Publishing action161322 Node: Configuration161353
Node: Publishing options162555 Node: Project alist162071
Node: Publishing links164707 Node: Sources and destinations163137
Node: Project page index166220 Node: Selecting files163867
Node: Sample configuration166998 Node: Publishing action164615
Node: Simple example167490 Node: Publishing options165848
Node: Complex example168163 Node: Publishing links168000
Node: Triggering publication170239 Node: Project page index169513
Node: Miscellaneous170924 Node: Sample configuration170291
Node: Completion171558 Node: Simple example170783
Node: Customization172939 Node: Complex example171456
Node: In-buffer settings173524 Node: Triggering publication173532
Node: The very busy C-c C-c key176755 Node: Miscellaneous174217
Node: Clean view178399 Node: Completion174851
Node: TTY keys180976 Node: Customization176322
Node: Interaction182585 Node: In-buffer settings176907
Node: Cooperation182982 Node: The very busy C-c C-c key180328
Node: Conflicts184849 Node: Clean view181972
Node: Bugs186441 Node: TTY keys184549
Node: Extensions and Hacking188064 Node: Interaction186158
Node: Extensions188550 Node: Cooperation186555
Node: Dynamic blocks190120 Node: Conflicts188422
Node: History and Acknowledgments192047 Node: Bugs190014
Node: Index197009 Node: Extensions and Hacking191637
Node: Key Index221368 Node: Extensions192123
Node: Dynamic blocks193693
Node: History and Acknowledgments195620
Node: Index200628
Node: Key Index227059
 
End Tag Table End Tag Table

280
org.el
View File

@ -5,7 +5,7 @@
;; Author: Carsten Dominik <dominik at science dot uva dot nl> ;; Author: Carsten Dominik <dominik at science dot uva dot nl>
;; Keywords: outlines, hypermedia, calendar, wp ;; Keywords: outlines, hypermedia, calendar, wp
;; Homepage: http://www.astro.uva.nl/~dominik/Tools/org/ ;; Homepage: http://www.astro.uva.nl/~dominik/Tools/org/
;; Version: 4.50 ;; Version: 4.51
;; ;;
;; This file is part of GNU Emacs. ;; This file is part of GNU Emacs.
;; ;;
@ -61,6 +61,12 @@
;; ;;
;; Recent changes ;; Recent changes
;; -------------- ;; --------------
;; Version 4.51
;; - Link abbreviations (manual section 4.5).
;; - More control over how agenda is displayed. See the new variables
;; `org-agenda-window-setup', `org-agenda-restore-windows-after-quit'.
;; - Bug fixes.
;;
;; Version 4.50 ;; Version 4.50
;; - Closing a TODO item can record an additional note. ;; - Closing a TODO item can record an additional note.
;; See variables `org-log-done' and `org-log-note-headings'. ;; See variables `org-log-done' and `org-log-note-headings'.
@ -137,7 +143,7 @@
;;; Customization variables ;;; Customization variables
(defvar org-version "4.50" (defvar org-version "4.51"
"The version number of the file org.el.") "The version number of the file org.el.")
(defun org-version () (defun org-version ()
(interactive) (interactive)
@ -691,7 +697,8 @@ this variable requires a restart of Emacs to become effective."
:group 'org-table-settings :group 'org-table-settings
:type 'string) :type 'string)
(defcustom org-table-number-regexp "^[<>]?[-+^.0-9]*[0-9][-+^.0-9eEdDx()%]*$" (defcustom org-table-number-regexp
"^\\([<>]?[-+^.0-9]*[0-9][-+^.0-9eEdDx()%]*\\|\\(0[xX]\\)?[0-9a-fA-F]+\\)$"
"Regular expression for recognizing numbers in table columns. "Regular expression for recognizing numbers in table columns.
If a table column contains mostly numbers, it will be aligned to the If a table column contains mostly numbers, it will be aligned to the
right. If not, it will be aligned to the left. right. If not, it will be aligned to the left.
@ -715,8 +722,8 @@ Other options offered by the customize interface are more restrictive."
"^[-+]?\\([0-9]*\\.[0-9]+\\|[0-9]+\\.?[0-9]*\\)$") "^[-+]?\\([0-9]*\\.[0-9]+\\|[0-9]+\\.?[0-9]*\\)$")
(const :tag "Exponential, Floating point, Integer" (const :tag "Exponential, Floating point, Integer"
"^[-+]?[0-9.]+\\([eEdD][-+0-9]+\\)?$") "^[-+]?[0-9.]+\\([eEdD][-+0-9]+\\)?$")
(const :tag "Very General Number-Like" (const :tag "Very General Number-Like, including hex"
"^[<>]?[-+^.0-9]*[0-9][-+^.0-9eEdDx()%]*$") "^\\([<>]?[-+^.0-9]*[0-9][-+^.0-9eEdDx()%]*\\|\\(0[xX]\\)?[0-9a-fA-F]+\\)$")
(string :tag "Regexp:"))) (string :tag "Regexp:")))
(defcustom org-table-number-fraction 0.5 (defcustom org-table-number-fraction 0.5
@ -847,6 +854,26 @@ Automatically means, when TAB or RET or C-c C-c are pressed in the line."
:tag "Org Link" :tag "Org Link"
:group 'org) :group 'org)
(defvar org-link-abbrev-alist-local nil
"buffer-local version of `org-link-abbrev-alist', which see.
The value of this is taken from the #+LINK lines.")
(make-variable-buffer-local 'org-link-abbrev-alist-local)
(defcustom org-link-abbrev-alist nil
"Alist of link abbreviations.
The car of each element is a string, to be replaced at the start of a link.
The cdrs are replacement values, like (\"linkkey\" . REPLACE). Abbreviated
links in Org-mode buffers can have an optional tag after a double colon, e.g.
[[linkkey::tag][description]]
If REPLACE is a string, the tag will simply be appended to create the link.
If the string contains \"%s\", the tag will be inserted there. REPLACE may
also be a function that will be called with the tag as the only argument to
create the link. See the manual for examples."
:group 'org-link
:type 'alist)
(defcustom org-descriptive-links t (defcustom org-descriptive-links t
"Non-nil means, hide link part and only show description of bracket links. "Non-nil means, hide link part and only show description of bracket links.
Bracket links are like [[link][descritpion]]. This variable sets the initial Bracket links are like [[link][descritpion]]. This variable sets the initial
@ -1032,6 +1059,18 @@ another window."
(const find-file-other-window) (const find-file-other-window)
(const find-file-other-frame))))) (const find-file-other-frame)))))
(defcustom org-display-internal-link-with-indirect-buffer nil
"Non-nil means, use indirect buffer to display infile links.
Activating internal links (from one location in a file to another location
in the same file) normally just jumps to the location. When the link is
activated with a C-u prefix (or with mouse-3), the link is displayed in
another window. When this option is set, the other window actually displays
an indirect buffer clone of the current buffer, to avoid any visibility
changes to the current buffer."
:group 'org-link-follow
:type 'boolean)
(defcustom org-open-non-existing-files nil (defcustom org-open-non-existing-files nil
"Non-nil means, `org-open-file' will open non-existing file. "Non-nil means, `org-open-file' will open non-existing file.
When nil, an error will be generated." When nil, an error will be generated."
@ -1627,6 +1666,54 @@ forth between agenda and calendar."
:tag "Org Agenda Window Setup" :tag "Org Agenda Window Setup"
:group 'org-agenda) :group 'org-agenda)
(defcustom org-agenda-window-setup 'reorganize-frame
"How the agenda buffer should be displayed.
Possible values for this option are:
current-window Show agenda in the current window, keeping all other windows.
other-frame Use `switch-to-buffer-other-frame' to display agenda.
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.
See also the variable `org-agenda-restore-windows-after-quit'."
:group 'org-agenda-setup
:type '(choice
(const current-window)
(const other-frame)
(const other-window)
(const reorganize-frame)))
(defcustom org-agenda-restore-windows-after-quit nil
"Non-nil means, restore window configuration open exiting agenda.
Before the window configuration is changed for displaying the agenda,
the current status is recorded. When the agenda is exited with
`q' or `x' and this option is set, the old state is restored. If
`org-agenda-window-setup' is `other-frame', the value of this
option will be ignored.."
:group 'org-agenda-setup
:type 'boolean)
;; FIXME: I think this variable could be removed.
(defcustom org-select-agenda-window t
"Non-nil means, after creating an agenda, move cursor into Agenda window.
When nil, cursor will remain in the current window."
:group 'org-agenda-setup
:type 'boolean)
;; FIXME: I think this variable could be removed.
(defcustom org-fit-agenda-window t
"Non-nil means, change window size of agenda to fit content.
This is only effective if `org-agenda-window-setup' is `reorganize-frame'."
:group 'org-agenda-setup
:type 'boolean)
(defcustom org-finalize-agenda-hook nil
"Hook run just before displaying an agenda buffer."
:group 'org-agenda-setup
:type 'hook)
(defcustom org-agenda-mouse-1-follows-link nil (defcustom org-agenda-mouse-1-follows-link nil
"Non-nil means, mouse-1 on a link will follow the link in the agenda. "Non-nil means, mouse-1 on a link will follow the link in the agenda.
A longer mouse click will still set point. Does not wortk on XEmacs. A longer mouse click will still set point. Does not wortk on XEmacs.
@ -1639,22 +1726,6 @@ Needs to be set before org.el is loaded."
:group 'org-agenda-setup :group 'org-agenda-setup
:type 'boolean) :type 'boolean)
(defcustom org-select-agenda-window t
"Non-nil means, after creating an agenda, move cursor into Agenda window.
When nil, cursor will remain in the current window."
:group 'org-agenda-setup
:type 'boolean)
(defcustom org-fit-agenda-window t
"Non-nil means, change window size of agenda to fit content."
:group 'org-agenda-setup
:type 'boolean)
(defcustom org-finalize-agenda-hook nil
"Hook run just before displaying an agenda buffer."
:group 'org-agenda ;??????
:type 'hook)
(defgroup org-agenda-display nil (defgroup org-agenda-display nil
"Options concerning what to display initially in Agenda." "Options concerning what to display initially in Agenda."
:tag "Org Agenda Display" :tag "Org Agenda Display"
@ -2415,7 +2486,11 @@ Changing this variable requires a restart of Emacs to take effect."
(setq markers (concat (replace-match "" t t markers) "^"))) (setq markers (concat (replace-match "" t t markers) "^")))
(if (string-match "-" markers) (if (string-match "-" markers)
(setq markers (concat (replace-match "" t t markers) "-"))) (setq markers (concat (replace-match "" t t markers) "-")))
(while (>= (setq nl (1- nl)) 0) (setq body1 (concat body1 "\n?" body "*?"))) ; (while (>= (setq nl (1- nl)) 0) (setq body1 (concat body1 "\n?" body "*?")))
; (while (>= (setq nl (1- nl)) 0) (setq body1 (concat body1 "\\(?:\n?" body "*?\\)?")))
(if (> nl 0)
(setq body1 (concat body1 "\\(?:\n" body "*?\\)\\{0,"
(int-to-string nl) "\\}")))
;; Make the regexp ;; Make the regexp
(setq org-emph-re (setq org-emph-re
(concat "\\([" pre (if stacked markers) "]\\|^\\)" (concat "\\([" pre (if stacked markers) "]\\|^\\)"
@ -2859,9 +2934,9 @@ Also put tags into group 4 if tags are present.")
(when (org-mode-p) (when (org-mode-p)
(let ((re (org-make-options-regexp (let ((re (org-make-options-regexp
'("CATEGORY" "SEQ_TODO" "PRI_TODO" "TYP_TODO" '("CATEGORY" "SEQ_TODO" "PRI_TODO" "TYP_TODO"
"STARTUP" "ARCHIVE" "TAGS" "CALC"))) "STARTUP" "ARCHIVE" "TAGS" "LINK")))
(splitre "[ \t]+") (splitre "[ \t]+")
kwds int key value cat arch tags) kwds int key value cat arch tags links tmp)
(save-excursion (save-excursion
(save-restriction (save-restriction
(widen) (widen)
@ -2884,6 +2959,11 @@ Also put tags into group 4 if tags are present.")
kwds (append kwds (org-split-string value splitre)))) kwds (append kwds (org-split-string value splitre))))
((equal key "TAGS") ((equal key "TAGS")
(setq tags (append tags (org-split-string value splitre)))) (setq tags (append tags (org-split-string value splitre))))
((equal key "LINK")
(when (string-match "^\\(\\S-+\\)[ \t]+\\(.+\\)" value)
(push (cons (match-string 1 value)
(org-trim (match-string 2 value)))
links)))
((equal key "STARTUP") ((equal key "STARTUP")
(let ((opts (org-split-string value splitre)) (let ((opts (org-split-string value splitre))
l var val) l var val)
@ -2900,6 +2980,7 @@ Also put tags into group 4 if tags are present.")
(and kwds (org-set-local 'org-todo-keywords kwds)) (and kwds (org-set-local 'org-todo-keywords kwds))
(and arch (org-set-local 'org-archive-location arch)) (and arch (org-set-local 'org-archive-location arch))
(and int (org-set-local 'org-todo-interpretation int)) (and int (org-set-local 'org-todo-interpretation int))
(and links (setq org-link-abbrev-alist-local (nreverse links)))
(when tags (when tags
(let (e tgs) (let (e tgs)
(while (setq e (pop tags)) (while (setq e (pop tags))
@ -3455,7 +3536,10 @@ between words."
(list (concat "\\<" org-closed-string) '(0 'org-special-keyword t)) (list (concat "\\<" org-closed-string) '(0 'org-special-keyword t))
(list (concat "\\<" org-clock-string) '(0 'org-special-keyword t)) (list (concat "\\<" org-clock-string) '(0 'org-special-keyword t))
;; Emphasis ;; Emphasis
(if em '(org-do-emphasis-faces)) (if em
(if (featurep 'xemacs)
'(org-do-emphasis-faces (0 nil append))
'(org-do-emphasis-faces)))
;; Checkboxes, similar to Frank Ruell's org-checklet.el ;; Checkboxes, similar to Frank Ruell's org-checklet.el
'("^[ \t]*\\([-+*]\\|[0-9]+[.)]\\) +\\(\\[[ X]\\]\\)" '("^[ \t]*\\([-+*]\\|[0-9]+[.)]\\) +\\(\\[[ X]\\]\\)"
2 'bold prepend) 2 'bold prepend)
@ -4381,7 +4465,7 @@ with the current numbers. With optional prefix argument ALL, do this for
the whole buffer." the whole buffer."
(interactive "P") (interactive "P")
(save-excursion (save-excursion
(let* ((buffer-invisibility-spec nil) (let* ((buffer-invisibility-spec nil) ; Emacs 21 compatibility
(beg (progn (outline-back-to-heading) (point))) (beg (progn (outline-back-to-heading) (point)))
(end (move-marker (make-marker) (end (move-marker (make-marker)
(progn (outline-next-heading) (point)))) (progn (outline-next-heading) (point))))
@ -4933,6 +5017,7 @@ the children that do not contain any open TODO items."
(defvar org-agenda-multi nil) ; dynammically scoped (defvar org-agenda-multi nil) ; dynammically scoped
(defvar org-agenda-buffer-name "*Org Agenda*") (defvar org-agenda-buffer-name "*Org Agenda*")
(defvar org-pre-agenda-window-conf nil)
(defun org-prepare-agenda () (defun org-prepare-agenda ()
(if org-agenda-multi (if org-agenda-multi
(progn (progn
@ -4943,10 +5028,21 @@ the children that do not contain any open TODO items."
(narrow-to-region (point) (point-max))) (narrow-to-region (point) (point-max)))
(org-agenda-maybe-reset-markers 'force) (org-agenda-maybe-reset-markers 'force)
(org-prepare-agenda-buffers (org-agenda-files)) (org-prepare-agenda-buffers (org-agenda-files))
(unless (equal (current-buffer) (get-buffer org-agenda-buffer-name)) (let* ((abuf (get-buffer-create org-agenda-buffer-name))
(delete-other-windows) (awin (get-buffer-window abuf)))
(switch-to-buffer-other-window (cond
(get-buffer-create org-agenda-buffer-name))) ((equal (current-buffer) abuf) nil)
(awin (select-window awin))
((not (setq org-pre-agenda-window-conf (current-window-configuration))))
((equal org-agenda-window-setup 'current-window)
(switch-to-buffer abuf))
((equal org-agenda-window-setup 'other-window)
(switch-to-buffer-other-window abuf))
((equal org-agenda-window-setup 'other-frame)
(switch-to-buffer-other-frame abuf))
((equal org-agenda-window-setup 'reorganize-frame)
(delete-other-windows)
(switch-to-buffer-other-window abuf))))
(setq buffer-read-only nil) (setq buffer-read-only nil)
(erase-buffer) (erase-buffer)
(org-agenda-mode)) (org-agenda-mode))
@ -5163,6 +5259,7 @@ At all other locations, this simply calls `ispell-complete-word'."
(camel (equal (char-before beg) ?*)) (camel (equal (char-before beg) ?*))
(tag (equal (char-before beg1) ?:)) (tag (equal (char-before beg1) ?:))
(texp (equal (char-before beg) ?\\)) (texp (equal (char-before beg) ?\\))
(link (equal (char-before beg) ?\[))
(opt (equal (buffer-substring (max (point-at-bol) (- beg 2)) (opt (equal (buffer-substring (max (point-at-bol) (- beg 2))
beg) beg)
"#+")) "#+"))
@ -5181,6 +5278,8 @@ At all other locations, this simply calls `ispell-complete-word'."
(startup (startup
(setq type :startup) (setq type :startup)
org-startup-options) org-startup-options)
(link (append org-link-abbrev-alist-local
org-link-abbrev-alist))
(texp (texp
(setq type :tex) (setq type :tex)
org-html-entities) org-html-entities)
@ -5382,7 +5481,7 @@ be removed."
(format-time-string (car org-time-stamp-formats) time)) (format-time-string (car org-time-stamp-formats) time))
(setq what nil)) (setq what nil))
(save-excursion (save-excursion
(let (col list elt (buffer-invisibility-spec nil) ts) (let (col list elt ts buffer-invisibility-spec)
(org-back-to-heading t) (org-back-to-heading t)
(looking-at (concat outline-regexp "\\( *\\)[^\r\n]*")) (looking-at (concat outline-regexp "\\( *\\)[^\r\n]*"))
(goto-char (match-end 1)) (goto-char (match-end 1))
@ -5739,7 +5838,7 @@ While prompting, a calendar is popped up - you can also select the
date with the mouse (button 1). The calendar shows a period of three date with the mouse (button 1). The calendar shows a period of three
months. To scroll it to other months, use the keys `>' and `<'. months. To scroll it to other months, use the keys `>' and `<'.
If you don't like the calendar, turn it off with If you don't like the calendar, turn it off with
\(setq org-popup-calendar-for-date-prompt nil) \(setq org-popup-calendar-for-date-prompt Nil)
With optional argument TO-TIME, the date will immediately be converted With optional argument TO-TIME, the date will immediately be converted
to an internal time. to an internal time.
@ -6696,7 +6795,7 @@ The following commands are available:
"--" "--"
["Show" org-agenda-show t] ["Show" org-agenda-show t]
["Go To (other window)" org-agenda-goto t] ["Go To (other window)" org-agenda-goto t]
["Go To (one window)" org-agenda-switch-to t] ["Go To (this window)" org-agenda-switch-to t]
["Follow Mode" org-agenda-follow-mode ["Follow Mode" org-agenda-follow-mode
:style toggle :selected org-agenda-follow-mode :active t] :style toggle :selected org-agenda-follow-mode :active t]
"--" "--"
@ -6893,7 +6992,6 @@ L Timeline for current buffer C Configure custom agenda commands")
(t (error "Invalid key")))))) (t (error "Invalid key"))))))
;; FIXME: what is the meaning of WINDOW????? ;; FIXME: what is the meaning of WINDOW?????
;; FIXME: need to force KEEP-MODES for series comands......
(defun org-run-agenda-series (series &optional window) (defun org-run-agenda-series (series &optional window)
(org-prepare-agenda) (org-prepare-agenda)
(let* ((org-agenda-multi t) (let* ((org-agenda-multi t)
@ -6947,6 +7045,7 @@ before running the agenda command."
(defun org-fit-agenda-window () (defun org-fit-agenda-window ()
"Fit the window to the buffer size." "Fit the window to the buffer size."
(and org-fit-agenda-window (and org-fit-agenda-window
(memq org-agenda-window-setup '(reorganize-frame))
(fboundp 'fit-window-to-buffer) (fboundp 'fit-window-to-buffer)
(fit-window-to-buffer nil (/ (* (frame-height) 3) 4) (fit-window-to-buffer nil (/ (* (frame-height) 3) 4)
(/ (frame-height) 2)))) (/ (frame-height) 2))))
@ -7054,7 +7153,7 @@ When a buffer is unmodified, it is just killed. When modified, it is saved
(with-current-buffer buf (save-buffer))) (with-current-buffer buf (save-buffer)))
(kill-buffer buf)))) (kill-buffer buf))))
(defun org-timeline (&optional include-all keep-modes) (defun org-timeline (&optional include-all)
"Show a time-sorted view of the entries in the current org file. "Show a time-sorted view of the entries in the current org file.
Only entries with a time stamp of today or later will be listed. With Only entries with a time stamp of today or later will be listed. With
\\[universal-argument] prefix, all unfinished TODO items will also be shown, \\[universal-argument] prefix, all unfinished TODO items will also be shown,
@ -7068,7 +7167,6 @@ dates."
(let* ((dopast t) (let* ((dopast t)
(dotodo include-all) (dotodo include-all)
(doclosed org-agenda-show-log) (doclosed org-agenda-show-log)
(org-agenda-keep-modes keep-modes)
(entry buffer-file-name) (entry buffer-file-name)
(date (calendar-current-date)) (date (calendar-current-date))
(win (selected-window)) (win (selected-window))
@ -7085,7 +7183,7 @@ dates."
(setq org-agenda-redo-command (setq org-agenda-redo-command
(list 'progn (list 'progn
(list 'switch-to-buffer-other-window (current-buffer)) (list 'switch-to-buffer-other-window (current-buffer))
(list 'org-timeline (list 'quote include-all) t))) (list 'org-timeline (list 'quote include-all))))
(if (not dopast) (if (not dopast)
;; Remove past dates from the list of dates. ;; Remove past dates from the list of dates.
(setq day-numbers (delq nil (mapcar (lambda(x) (setq day-numbers (delq nil (mapcar (lambda(x)
@ -7140,7 +7238,7 @@ dates."
"The arguments of the previous call to org-agenda") "The arguments of the previous call to org-agenda")
;;;###autoload ;;;###autoload
(defun org-agenda-list (&optional include-all start-day ndays keep-modes) (defun org-agenda-list (&optional include-all start-day ndays)
"Produce a weekly view from all files in variable `org-agenda-files'. "Produce a weekly view from all files in variable `org-agenda-files'.
The view will be for the current week, but from the overview buffer you The view will be for the current week, but from the overview buffer you
will be able to go to other weeks. will be able to go to other weeks.
@ -7156,9 +7254,8 @@ NDAYS defaults to `org-agenda-ndays'."
(if org-agenda-overriding-arguments (if org-agenda-overriding-arguments
(setq include-all (car org-agenda-overriding-arguments) (setq include-all (car org-agenda-overriding-arguments)
start-day (nth 1 org-agenda-overriding-arguments) start-day (nth 1 org-agenda-overriding-arguments)
ndays (nth 2 org-agenda-overriding-arguments) ndays (nth 2 org-agenda-overriding-arguments)))
keep-modes (nth 3 org-agenda-overriding-arguments))) (setq org-agenda-last-arguments (list include-all start-day ndays))
(setq org-agenda-last-arguments (list include-all start-day ndays keep-modes))
(org-compile-prefix-format 'agenda) (org-compile-prefix-format 'agenda)
(org-set-sorting-strategy 'agenda) (org-set-sorting-strategy 'agenda)
(require 'calendar) (require 'calendar)
@ -7166,7 +7263,6 @@ NDAYS defaults to `org-agenda-ndays'."
(if (or (equal ndays 1) (if (or (equal ndays 1)
(and (null ndays) (equal 1 org-agenda-ndays))) (and (null ndays) (equal 1 org-agenda-ndays)))
nil org-agenda-start-on-weekday)) nil org-agenda-start-on-weekday))
(org-agenda-keep-modes keep-modes)
(thefiles (org-agenda-files)) (thefiles (org-agenda-files))
(files thefiles) (files thefiles)
(win (selected-window)) (win (selected-window))
@ -7181,10 +7277,10 @@ NDAYS defaults to `org-agenda-ndays'."
(d (- nt n1))) (d (- nt n1)))
(- sd (+ (if (< d 0) 7 0) d))))) (- sd (+ (if (< d 0) 7 0) d)))))
(day-numbers (list start)) (day-numbers (list start))
(inhibit-redisplay t) ;FIXME (inhibit-redisplay t)
s e rtn rtnall file date d start-pos end-pos todayp nd) s e rtn rtnall file date d start-pos end-pos todayp nd)
(setq org-agenda-redo-command (setq org-agenda-redo-command
(list 'org-agenda-list (list 'quote include-all) start-day ndays t)) (list 'org-agenda-list (list 'quote include-all) start-day ndays))
;; Make the list of days ;; Make the list of days
(setq ndays (or ndays org-agenda-ndays) (setq ndays (or ndays org-agenda-ndays)
nd ndays) nd ndays)
@ -7277,7 +7373,7 @@ NDAYS defaults to `org-agenda-ndays'."
(defvar org-select-this-todo-keyword nil) (defvar org-select-this-todo-keyword nil)
;;;###autoload ;;;###autoload
(defun org-todo-list (arg &optional keep-modes) (defun org-todo-list (arg)
"Show all TODO entries from all agenda file in a single list. "Show all TODO entries from all agenda file in a single list.
The prefix arg can be used to select a specific TODO keyword and limit The prefix arg can be used to select a specific TODO keyword and limit
the list to these. When using \\[universal-argument], you will be prompted the list to these. When using \\[universal-argument], you will be prompted
@ -7286,8 +7382,7 @@ for a keyword. A numeric prefix directly selects the Nth keyword in
(interactive "P") (interactive "P")
(org-compile-prefix-format 'todo) (org-compile-prefix-format 'todo)
(org-set-sorting-strategy 'todo) (org-set-sorting-strategy 'todo)
(let* ((org-agenda-keep-modes keep-modes) (let* ((today (time-to-days (current-time)))
(today (time-to-days (current-time)))
(date (calendar-gregorian-from-absolute today)) (date (calendar-gregorian-from-absolute today))
(win (selected-window)) (win (selected-window))
(kwds org-todo-keywords) (kwds org-todo-keywords)
@ -7306,7 +7401,7 @@ for a keyword. A numeric prefix directly selects the Nth keyword in
(org-set-local 'last-arg arg) (org-set-local 'last-arg arg)
(org-set-local 'org-todo-keywords kwds) (org-set-local 'org-todo-keywords kwds)
(setq org-agenda-redo-command (setq org-agenda-redo-command
'(org-todo-list (or current-prefix-arg last-arg) t)) '(org-todo-list (or current-prefix-arg last-arg)))
(setq files (org-agenda-files) (setq files (org-agenda-files)
rtnall nil) rtnall nil)
(while (setq file (pop files)) (while (setq file (pop files))
@ -7366,7 +7461,12 @@ If ERROR is non-nil, throw an error, otherwise just return nil."
(let ((buf (current-buffer))) (let ((buf (current-buffer)))
(if (not (one-window-p)) (delete-window)) (if (not (one-window-p)) (delete-window))
(kill-buffer buf) (kill-buffer buf)
(org-agenda-maybe-reset-markers 'force))) (org-agenda-maybe-reset-markers 'force))
;; Maybe restore the pre-agenda window configuration.
(and org-agenda-restore-windows-after-quit
(not (eq org-agenda-window-setup 'other-frame))
org-pre-agenda-window-conf
(set-window-configuration org-pre-agenda-window-conf)))
(defun org-agenda-exit () (defun org-agenda-exit ()
"Exit agenda by removing the window or the buffer. "Exit agenda by removing the window or the buffer.
@ -7388,7 +7488,8 @@ Org-mode buffers visited directly by the user will not be touched."
"Rebuild Agenda. "Rebuild Agenda.
When this is the global TODO list, a prefix argument will be interpreted." When this is the global TODO list, a prefix argument will be interpreted."
(interactive) (interactive)
(let* ((line (org-current-line)) (let* ((org-agenda-keep-modes t)
(line (org-current-line))
(window-line (- line (org-current-line (window-start))))) (window-line (- line (org-current-line (window-start)))))
(message "Rebuilding agenda buffer...") (message "Rebuilding agenda buffer...")
(eval org-agenda-redo-command) (eval org-agenda-redo-command)
@ -8589,7 +8690,7 @@ and by additional input from the age of a schedules or deadline entry."
(org-flag-heading nil)))) ; show the next heading (org-flag-heading nil)))) ; show the next heading
(and highlight (org-highlight (point-at-bol) (point-at-eol))))) (and highlight (org-highlight (point-at-bol) (point-at-eol)))))
(defun org-agenda-switch-to () (defun org-agenda-switch-to (&optional delete-other-windows)
"Go to the Org-mode file which contains the item at point." "Go to the Org-mode file which contains the item at point."
(interactive) (interactive)
(let* ((marker (or (get-text-property (point) 'org-marker) (let* ((marker (or (get-text-property (point) 'org-marker)
@ -8597,7 +8698,7 @@ and by additional input from the age of a schedules or deadline entry."
(buffer (marker-buffer marker)) (buffer (marker-buffer marker))
(pos (marker-position marker))) (pos (marker-position marker)))
(switch-to-buffer buffer) (switch-to-buffer buffer)
(delete-other-windows) (and delete-other-windows (delete-other-windows))
(widen) (widen)
(goto-char pos) (goto-char pos)
(when (org-mode-p) (when (org-mode-p)
@ -9018,7 +9119,7 @@ This is a command that has to be installed in `calendar-mode-map'."
(interactive) (interactive)
(org-agenda-list nil (calendar-absolute-from-gregorian (org-agenda-list nil (calendar-absolute-from-gregorian
(calendar-cursor-to-date)) (calendar-cursor-to-date))
nil t)) nil))
(defun org-agenda-convert-date () (defun org-agenda-convert-date ()
(interactive) (interactive)
@ -9166,14 +9267,13 @@ MATCH can contain positive and negative selection of tags, like
(cons match0 matcher))) (cons match0 matcher)))
;;;###autoload ;;;###autoload
(defun org-tags-view (&optional todo-only match keep-modes) (defun org-tags-view (&optional todo-only match)
"Show all headlines for all `org-agenda-files' matching a TAGS criterion. "Show all headlines for all `org-agenda-files' matching a TAGS criterion.
The prefix arg TODO-ONLY limits the search to TODO entries." The prefix arg TODO-ONLY limits the search to TODO entries."
(interactive "P") (interactive "P")
(org-compile-prefix-format 'tags) (org-compile-prefix-format 'tags)
(org-set-sorting-strategy 'tags) (org-set-sorting-strategy 'tags)
(let* ((org-agenda-keep-modes keep-modes) (let* ((org-tags-match-list-sublevels
(org-tags-match-list-sublevels
(if todo-only t org-tags-match-list-sublevels)) (if todo-only t org-tags-match-list-sublevels))
(win (selected-window)) (win (selected-window))
(completion-ignore-case t) (completion-ignore-case t)
@ -9184,7 +9284,7 @@ The prefix arg TODO-ONLY limits the search to TODO entries."
(org-prepare-agenda) (org-prepare-agenda)
(setq org-agenda-redo-command (setq org-agenda-redo-command
(list 'org-tags-view (list 'quote todo-only) (list 'org-tags-view (list 'quote todo-only)
(list 'if 'current-prefix-arg nil match) t)) (list 'if 'current-prefix-arg nil match)))
(setq files (org-agenda-files) (setq files (org-agenda-files)
rtnall nil) rtnall nil)
(while (setq file (pop files)) (while (setq file (pop files))
@ -9263,7 +9363,6 @@ With prefix ARG, realign all tags in headings in the current buffer."
nil nil current 'org-tags-history)))) nil nil current 'org-tags-history))))
(while (string-match "[-+&]+" tags) (while (string-match "[-+&]+" tags)
(setq tags (replace-match ":" t t tags)))) (setq tags (replace-match ":" t t tags))))
(unless (setq empty (string-match "\\`[\t ]*\\'" tags)) (unless (setq empty (string-match "\\`[\t ]*\\'" tags))
(unless (string-match ":$" tags) (setq tags (concat tags ":"))) (unless (string-match ":$" tags) (setq tags (concat tags ":")))
(unless (string-match "^:" tags) (setq tags (concat ":" tags)))) (unless (string-match "^:" tags) (setq tags (concat ":" tags))))
@ -9284,14 +9383,15 @@ With prefix ARG, realign all tags in headings in the current buffer."
(if (= (char-after) ?\ ) (forward-char 1)) (if (= (char-after) ?\ ) (forward-char 1))
(and (re-search-forward "[ \t]+$" (point-at-eol) t) (and (re-search-forward "[ \t]+$" (point-at-eol) t)
(replace-match ""))) (replace-match "")))
(move-to-column (max (current-column) (let (buffer-invisibility-spec) ; Emacs 21 compatibility
(if (> org-tags-column 0) (move-to-column (max (current-column)
org-tags-column (if (> org-tags-column 0)
(- (- org-tags-column) (length tags)))) org-tags-column
t) (- (- org-tags-column) (length tags))))
t))
(insert tags) (insert tags)
(if (and (not invis) (org-invisible-p)) (if (and (not invis) (org-invisible-p))
(outline-flag-region (point-at-bol) (point) nil))) (outline-flag-region (point) (point-at-bol) nil))) ; show
(move-to-column col)))) (move-to-column col))))
(defun org-tags-completion-function (string predicate &optional flag) (defun org-tags-completion-function (string predicate &optional flag)
@ -9522,6 +9622,7 @@ the window configuration before `org-open-at-point' was called using:
"The window configuration before following a link. "The window configuration before following a link.
This is saved in case the need arises to restore it.") This is saved in case the need arises to restore it.")
;; FIXME: IN-EMACS is used for many purposes, maybe rename this argument???
(defun org-open-at-point (&optional in-emacs) (defun org-open-at-point (&optional in-emacs)
"Open link at or after point. "Open link at or after point.
If there is no link at point, this function will search forward up to If there is no link at point, this function will search forward up to
@ -9544,6 +9645,7 @@ optional argument IN-EMACS is non-nil, Emacs will visit the file."
(setq link (org-link-unescape (org-match-string-no-properties 1))) (setq link (org-link-unescape (org-match-string-no-properties 1)))
(while (string-match " *\n *" link) (while (string-match " *\n *" link)
(setq link (replace-match " " t t link))) (setq link (replace-match " " t t link)))
(setq link (org-link-expand-abbrev link))
(if (string-match org-link-re-with-space2 link) (if (string-match org-link-re-with-space2 link)
(setq type (match-string 1 link) (setq type (match-string 1 link)
path (match-string 2 link)) path (match-string 2 link))
@ -9621,7 +9723,10 @@ optional argument IN-EMACS is non-nil, Emacs will visit the file."
(org-tags-view in-emacs path)) (org-tags-view in-emacs path))
((or (string= type "camel") ((or (string= type "camel")
(string= type "thisfile")) (string= type "thisfile"))
(org-mark-ring-push) (if in-emacs
(switch-to-buffer-other-window
(org-get-buffer-for-internal-link (current-buffer)))
(org-mark-ring-push))
(org-link-search (org-link-search
path path
(cond ((equal in-emacs '(4)) 'occur) (cond ((equal in-emacs '(4)) 'occur)
@ -9716,6 +9821,24 @@ optional argument IN-EMACS is non-nil, Emacs will visit the file."
(t (t
(browse-url-at-point)))))) (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)
(let* ((key (match-string 1 link))
(as (or (assoc key org-link-abbrev-alist-local)
(assoc key org-link-abbrev-alist)))
(tag (and (match-end 2) (match-string 3 link)))
rpl)
(if (not as)
link
(setq rpl (cdr as))
(cond
((symbolp rpl) (funcall rpl tag))
((string-match "%s" rpl) (replace-match (or tag "") t t rpl))
(t (concat rpl tag)))))
link))
(defun org-link-search (s &optional type) (defun org-link-search (s &optional type)
"Search for a link search option. "Search for a link search option.
When S is a CamelCaseWord, search for a target, or for a sentence containing When S is a CamelCaseWord, search for a target, or for a sentence containing
@ -9817,6 +9940,22 @@ in all files."
(throw 'exit (point))) (throw 'exit (point)))
(goto-char (match-end 0))))))) (goto-char (match-end 0)))))))
(defun org-get-buffer-for-internal-link (buffer)
"Return a buffer to be used for displaying the link target of internal links."
(cond
((not org-display-internal-link-with-indirect-buffer)
buffer)
((string-match "(Clone)$" (buffer-name buffer))
(message "Buffer is already a clone, not making another one")
;; we also do not modify visibility in this case
buffer)
(t ; make a new indirect buffer for displaying the link
(let* ((bn (buffer-name buffer))
(ibn (concat bn "(Clone)"))
(ib (or (get-buffer ibn) (make-indirect-buffer buffer ibn 'clone))))
(with-current-buffer ib (org-overview))
ib))))
(defun org-do-occur (regexp &optional cleanup) (defun org-do-occur (regexp &optional cleanup)
"Call the Emacs command `occur'. "Call the Emacs command `occur'.
If CLEANUP is non-nil, remove the printout of the regular expression If CLEANUP is non-nil, remove the printout of the regular expression
@ -10300,7 +10439,7 @@ on the system \"/user@host:\"."
((fboundp 'tramp-handle-file-remote-p) ((fboundp 'tramp-handle-file-remote-p)
(tramp-handle-file-remote-p file)) (tramp-handle-file-remote-p file))
((and (boundp 'ange-ftp-name-format) ((and (boundp 'ange-ftp-name-format)
(string-match ange-ftp-name-format file)) (string-match (car ange-ftp-name-format) file))
t) t)
(t nil))) (t nil)))
@ -13850,6 +13989,7 @@ translations. There is currently no way for users to extend this.")
(message "Exporting...") (message "Exporting...")
;; Normalize links: Convert angle and plain links into bracket links ;; Normalize links: Convert angle and plain links into bracket links
;; Expand link abbreviations
(goto-char (point-min)) (goto-char (point-min))
(while (re-search-forward re-plain-link nil t) (while (re-search-forward re-plain-link nil t)
(replace-match (replace-match
@ -13862,6 +14002,11 @@ translations. There is currently no way for users to extend this.")
(concat (concat
(match-string 1) "[[" (match-string 2) ":" (match-string 3) "]]") (match-string 1) "[[" (match-string 2) ":" (match-string 3) "]]")
t t)) 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)))
"]")))
;; Find multiline emphasis and put them into single line ;; Find multiline emphasis and put them into single line
(when (memq :emph-multiline parameters) (when (memq :emph-multiline parameters)
@ -16948,9 +17093,10 @@ Show the heading too, if it is currently invisible."
; (progn (outline-end-of-heading) (point)) ; (progn (outline-end-of-heading) (point))
; nil)))) ; nil))))
;;; Finish up
;;; Finish up
(provide 'org) (provide 'org)
(run-hooks 'org-load-hook) (run-hooks 'org-load-hook)

BIN
org.pdf

Binary file not shown.

147
org.texi
View File

@ -3,7 +3,7 @@
@setfilename ../info/org @setfilename ../info/org
@settitle Org Mode Manual @settitle Org Mode Manual
@set VERSION 4.50 @set VERSION 4.51
@set DATE September 2006 @set DATE September 2006
@dircategory Emacs @dircategory Emacs
@ -142,6 +142,7 @@ Hyperlinks
* Internal links:: Links to other places in the current file * Internal links:: Links to other places in the current file
* External links:: URL-like links to the world * External links:: URL-like links to the world
* Handling links:: Creating, inserting and following * Handling links:: Creating, inserting and following
* Link abbreviations:: Shortcuts for writing complex links
* Search options:: Linking to a specific location * Search options:: Linking to a specific location
* Custom searches:: When the default search is not enough * Custom searches:: When the default search is not enough
* Remember:: Org-trees store quick notes * Remember:: Org-trees store quick notes
@ -171,6 +172,10 @@ Timestamps
* Creating timestamps:: Commands which insert timestamps * Creating timestamps:: Commands which insert timestamps
* Progress logging:: Documenting when what work was done. * Progress logging:: Documenting when what work was done.
Creating timestamps
* The date/time prompt::
Progress Logging Progress Logging
* Closing items:: When was this entry marked DONE? * Closing items:: When was this entry marked DONE?
@ -1601,6 +1606,7 @@ links to other files, Usenet articles, emails, and much more.
* Internal links:: Links to other places in the current file * Internal links:: Links to other places in the current file
* External links:: URL-like links to the world * External links:: URL-like links to the world
* Handling links:: Creating, inserting and following * Handling links:: Creating, inserting and following
* Link abbreviations:: Shortcuts for writing complex links
* Search options:: Linking to a specific location * Search options:: Linking to a specific location
* Custom searches:: When the default search is not enough * Custom searches:: When the default search is not enough
* Remember:: Org-trees store quick notes * Remember:: Org-trees store quick notes
@ -1641,6 +1647,7 @@ internal structure of all links, use the menu entry
@cindex internal links @cindex internal links
@cindex links, internal @cindex links, internal
@cindex CamelCase links @cindex CamelCase links
@cindex targets, for links
If the link does not look like a URL, it is considered to be internal in If the link does not look like a URL, it is considered to be internal in
the current file. Links such as @samp{[[My Target]]} or @samp{[[My the current file. Links such as @samp{[[My Target]]} or @samp{[[My
@ -1691,6 +1698,9 @@ earlier.
@node Radio targets, CamelCase links, Internal links, Internal links @node Radio targets, CamelCase links, Internal links, Internal links
@subsection Radio targets @subsection Radio targets
@cindex radio targets
@cindex targets, radio
@cindex links, radio targets
You can configure Org-mode to link any occurrences of certain target You can configure Org-mode to link any occurrences of certain target
names in normal text. So without explicitly creating a link, the text names in normal text. So without explicitly creating a link, the text
@ -1709,10 +1719,11 @@ loaded into Emacs. To update the target list during editing, press
Org-mode also supports CamelCase words as links. This feature is not Org-mode also supports CamelCase words as links. This feature is not
turned on by default because of the inconsistencies this system suffers turned on by default because of the inconsistencies this system suffers
from. To activate CamelCase words as links, you need to customize from. It is also possible that this feature will disappear entirely in
the option @code{org-activate-links}. A CamelCase word then leads to a a future version of Org-mode. To activate CamelCase words as links, you
text search such that @samp{CamelCaseLink} is equivalent to need to customize the option @code{org-activate-links}. A CamelCase
@samp{[[camel case link]]}. word then leads to a text search such that @samp{CamelCaseLink} is
equivalent to @samp{[[camel case link]]}.
@node External links, Handling links, Internal links, Hyperlinks @node External links, Handling links, Internal links, Hyperlinks
@section External links @section External links
@ -1775,8 +1786,9 @@ as links. If spaces must be part of the link (for example in
@samp{bbdb:Richard Stallman}), or you need to remove ambiguities about the end of @samp{bbdb:Richard Stallman}), or you need to remove ambiguities about the end of
the link, enclose them in angular brackets. the link, enclose them in angular brackets.
@node Handling links, Search options, External links, Hyperlinks @node Handling links, Link abbreviations, External links, Hyperlinks
@section Handling links @section Handling links
@cindex links, handling
Org-mode provides methods to create a link in the correct syntax, to Org-mode provides methods to create a link in the correct syntax, to
insert it into an org-mode file, and to follow the link. insert it into an org-mode file, and to follow the link.
@ -1865,7 +1877,9 @@ would. Under Emacs 22, also @kbd{mouse-1} will follow a link.
@kindex mouse-3 @kindex mouse-3
@item mouse-3 @item mouse-3
Like @kbd{mouse-2}, but force file links to be opened with Emacs. Like @kbd{mouse-2}, but force file links to be opened with Emacs, and
internal links to be displayed in another window@footnote{See the
variable @code{org-display-internal-link-with-indirect-buffer}}.
@cindex mark ring @cindex mark ring
@kindex C-c % @kindex C-c %
@ -1882,8 +1896,57 @@ command several times in direct succession moves through a ring of
previously recorded positions. previously recorded positions.
@end table @end table
@node Link abbreviations, Search options, Handling links, Hyperlinks
@section Link abbreviatons
@cindex link abbreviations
@cindex abbreviation, links
@node Search options, Custom searches, Handling links, Hyperlinks Long URLs can be cumbersome to type, and often many similar links are
needed in a document. For this you can use link abbreviations. An
abbreviated link looks like this
@example
[[linkword::tag][description]]
@end example
@noindent
where the tag is optional. Such abbreviations are resolved according to
the information in the variable @code{org-link-abbrev-alist} that
relates the linkwords to replacement text. Here is an example:
@lisp
@group
(setq org-link-abbrev-alist
'(("bugzilla" . "http://10.1.2.9/bugzilla/show_bug.cgi?id=")
("google" . "http://www.google.com/search?q=")
("ads" . "http://adsabs.harvard.edu/cgi-bin/
nph-abs_connect?author=%s&db_key=AST")))
@end group
@end lisp
If the replacement text contains the string @samp{%s}, it will be
replaced with the tag. Otherwise the tag will be appended to the string
in order to create the link. You may also specify a function that will
be called with the tag as the only argument to create the link.
With the above setting, you could link to a specific bug with
@code{[[bugzilla::129]]}, search the web for OrgMode with
@code{[[google::OrgMode]]} and find out what the Org-mode author is
doing besides Emacs hacking with @code{[[ads::Dominik,C]]}.
If you need special abbreviations just for a single Org-mode buffer, you
can define them in the file with
@example
#+LINK: bugzilla http://10.1.2.9/bugzilla/show_bug.cgi?id=
#+LINK: google http://www.google.com/search?q=%s
@end example
@noindent
In-buffer completion @pxref{Completion} can be used after @samp{[} to
complete link abbreviations.
@node Search options, Custom searches, Link abbreviations, Hyperlinks
@section Search options in file links @section Search options in file links
@cindex search option in file links @cindex search option in file links
@cindex file links, searching @cindex file links, searching
@ -1935,6 +1998,7 @@ a search for @samp{find me} in the current file, just as
@node Custom searches, Remember, Search options, Hyperlinks @node Custom searches, Remember, Search options, Hyperlinks
@section Custom Searches @section Custom Searches
@cindex custom search strings @cindex custom search strings
@cindex search strings, custom
The default mechanism for creating search strings and for doing the The default mechanism for creating search strings and for doing the
actual search related to a file link may not work correctly in all actual search related to a file link may not work correctly in all
@ -2368,6 +2432,8 @@ back into synch. Or simply toggle any checkbox twice with @kbd{C-c C-c}.
@node Timestamps, Tags, TODO items, Top @node Timestamps, Tags, TODO items, Top
@chapter Timestamps @chapter Timestamps
@cindex time stamps
@cindex date stamps
Items can be labeled with timestamps to make them useful for project Items can be labeled with timestamps to make them useful for project
planning. planning.
@ -2547,15 +2613,42 @@ end. With prefix arg, insert result after the time range (in a table:
into the following column). into the following column).
@end table @end table
@menu
* The date/time prompt::
@end menu
@node The date/time prompt, , Creating timestamps, Creating timestamps
@subsection The date/time prompt
@cindex date, reading in minibuffer @cindex date, reading in minibuffer
@cindex time, reading in minibuffer @cindex time, reading in minibuffer
When Org-mode prompts for a date/time, the prompt suggests to enter an
ISO date. But it will in fact accept any string containing some date
and/or time information. You can, for example, use @kbd{C-y} to paste a
(possibly multi-line) string copied from an email message. Org-mode
will find whatever information is in there and will replace anything not
specified with the current date and time. For example:
@example
3-2-5 --> 2003-02-05
feb 15 --> currentyear-02-15
sep 12 9 --> 2009-09-12
12:45 --> today 12:45
22 sept 0:34 --> currentyear-09-22 0:34
12 --> currentyear-currentmonth-12
Fri --> nearest Friday (today or later)
@end example
The function understands English month and weekday abbreviations. If
you want to use unabbreviated names and/or other languages, configure
the variables @code{parse-time-months} and @code{parse-time-weekdays}.
@cindex calendar, for selecting date @cindex calendar, for selecting date
When Org-mode prompts for a date/time, the function reading your input Parallel to the minibuffer prompt, a calendar is popped up@footnote{If
will replace anything you choose not to specify with the current date you don't need/want the calendar, configure the variable
and time. For details, see the documentation string of @code{org-popup-calendar-for-date-prompt}.}. You can control the
@command{org-read-date}. Also, a calender will pop up to allow calendar fully from the minibuffer:
selecting a date. The calendar can be fully controlled from the
minibuffer, and a date can be selected with the following commands:
@table @kbd @table @kbd
@kindex < @kindex <
@ -2767,6 +2860,7 @@ searching using the variables @code{org-use-tag-inheritance} and
@node Setting tags, Tag searches, Tag inheritance, Tags @node Setting tags, Tag searches, Tag inheritance, Tags
@section Setting tags @section Setting tags
@cindex setting tags @cindex setting tags
@cindex tags, setting
@kindex M-@key{TAB} @kindex M-@key{TAB}
Tags can simply be typed into the buffer at the end of a headline. Tags can simply be typed into the buffer at the end of a headline.
@ -2858,6 +2952,7 @@ in a specific file? Just add an empty TAGS option line to that file:
@node Tag searches, , Setting tags, Tags @node Tag searches, , Setting tags, Tags
@section Tag searches @section Tag searches
@cindex tag searches @cindex tag searches
@cindex searching for tags
Once a tags system has been set up, it can be used to collect related Once a tags system has been set up, it can be used to collect related
information into special lists. information into special lists.
@ -2926,6 +3021,11 @@ buffer}. This buffer is read-only, but provides commands to visit the
corresponding locations in the original Org-mode files, and even to corresponding locations in the original Org-mode files, and even to
edit these files remotely. edit these files remotely.
Two variables control how the agenda buffer is displayed and whether the
window configuration is restored when the agenda exits:
@code{org-agenda-window-setup} and
@code{org-agenda-restore-windows-after-quit}.
@menu @menu
* Agenda files:: Files being searched for agenda information * Agenda files:: Files being searched for agenda information
* Agenda dispatcher:: Keyboard access to agenda views * Agenda dispatcher:: Keyboard access to agenda views
@ -2941,6 +3041,7 @@ edit these files remotely.
@node Agenda files, Agenda dispatcher, Agenda views, Agenda views @node Agenda files, Agenda dispatcher, Agenda views, Agenda views
@section Agenda files @section Agenda files
@cindex agenda files @cindex agenda files
@cindex files for agenda
The information to be shown is collected from all @emph{agenda files}, The information to be shown is collected from all @emph{agenda files},
the files listed in the variable @code{org-agenda-files}@footnote{If the the files listed in the variable @code{org-agenda-files}@footnote{If the
@ -3707,6 +3808,7 @@ yourself.
@node Batch processing, , Setting Options, Custom agenda views @node Batch processing, , Setting Options, Custom agenda views
@subsection Creating agenda views in batch processing @subsection Creating agenda views in batch processing
@cindex agenda, batch production
If you want to print or otherwise reprocess agenda views, it can be If you want to print or otherwise reprocess agenda views, it can be
useful to create an agenda from the command line. This is the purpose useful to create an agenda from the command line. This is the purpose
@ -3764,6 +3866,8 @@ to do with it.
@node Math symbols, Subscripts and Superscripts, Embedded LaTeX, Embedded LaTeX @node Math symbols, Subscripts and Superscripts, Embedded LaTeX, Embedded LaTeX
@section Math symbols @section Math symbols
@cindex math symbols
@cindex TeX macros
You can use La@TeX{} macros to insert special symbols like @samp{\alpha} You can use La@TeX{} macros to insert special symbols like @samp{\alpha}
to indicate the Greek letter, or @samp{\to} to indicate an arrow. to indicate the Greek letter, or @samp{\to} to indicate an arrow.
@ -3782,6 +3886,8 @@ into the proper syntax for HTML, for the above examples this is
@node Subscripts and Superscripts, LaTeX fragments, Math symbols, Embedded LaTeX @node Subscripts and Superscripts, LaTeX fragments, Math symbols, Embedded LaTeX
@section Subscripts and Superscripts @section Subscripts and Superscripts
@cindex subscript
@cindex superscript
Just like in La@TeX{}, @samp{^} and @samp{_} are used to indicate super- Just like in La@TeX{}, @samp{^} and @samp{_} are used to indicate super-
and subscripts. Again, these can be used without embedding them in and subscripts. Again, these can be used without embedding them in
@ -3802,6 +3908,7 @@ are surrounded with @code{<sub>} and @code{<sup>} tags, respectively.
@node LaTeX fragments, Processing LaTeX fragments, Subscripts and Superscripts, Embedded LaTeX @node LaTeX fragments, Processing LaTeX fragments, Subscripts and Superscripts, Embedded LaTeX
@section LaTeX fragments @section LaTeX fragments
@cindex LaTeX fragments
With symbols, sub- and superscripts, HTML is pretty much at its end when With symbols, sub- and superscripts, HTML is pretty much at its end when
it comes to representing mathematical formulas@footnote{Yes, there is it comes to representing mathematical formulas@footnote{Yes, there is
@ -3852,6 +3959,7 @@ ones you do not wish to have interpreted by the La@TeX{} converter.
@node Processing LaTeX fragments, CDLaTeX mode, LaTeX fragments, Embedded LaTeX @node Processing LaTeX fragments, CDLaTeX mode, LaTeX fragments, Embedded LaTeX
@section Processing LaTeX fragments @section Processing LaTeX fragments
@cindex LaTeX fragments, preview
La@TeX{} fragments can be processed to produce a preview images of the La@TeX{} fragments can be processed to produce a preview images of the
typeset expressions: typeset expressions:
@ -3880,6 +3988,7 @@ setting is active:
@node CDLaTeX mode, , Processing LaTeX fragments, Embedded LaTeX @node CDLaTeX mode, , Processing LaTeX fragments, Embedded LaTeX
@section Using CDLaTeX to enter math @section Using CDLaTeX to enter math
@cindex CDLaTeX
CDLaTeX-mode is a minor mode that is normally used in combination with a CDLaTeX-mode is a minor mode that is normally used in combination with a
major LaTeX mode like AUCTeX in order to speed-up insertion of major LaTeX mode like AUCTeX in order to speed-up insertion of
@ -4706,6 +4815,8 @@ variable @code{org-tag-alist} (possibly set through the @samp{#+TAGS}
in-buffer option, @pxref{Setting tags}), or it is created dynamically in-buffer option, @pxref{Setting tags}), or it is created dynamically
from all tags used in the current buffer. from all tags used in the current buffer.
@item @item
After @samp{[}, complete link abbreviations (@pxref{Link abbreviations}).
@item
After @samp{#+}, complete the special keywords like @samp{TYP_TODO} or After @samp{#+}, complete the special keywords like @samp{TYP_TODO} or
@samp{OPTIONS} which set file-specific options for Org-mode. When the @samp{OPTIONS} which set file-specific options for Org-mode. When the
option keyword is already complete, pressing @kbd{M-@key{TAB}} again option keyword is already complete, pressing @kbd{M-@key{TAB}} again
@ -4791,6 +4902,10 @@ and @code{org-todo-interpretation}.
These lines (several such lines are allowed) specify the legal tags in These lines (several such lines are allowed) specify the legal tags in
this file, and (potentially) the corresponding @emph{fast tag selection} this file, and (potentially) the corresponding @emph{fast tag selection}
keys. The corresponding variable is @code{org-tag-alist}. keys. The corresponding variable is @code{org-tag-alist}.
@item #+LINK: linkword replace
These lines (several are allowed) specify link abbreviations.
@xref{Link abbreviations}. The corresponding variable is
@code{org-link-abbrev-alist}.
@item #+CATEGORY: @item #+CATEGORY:
This line sets the category for the agenda file. The category applies This line sets the category for the agenda file. The category applies
for all subsequent lines until the next @samp{#+CATEGORY} line, or the for all subsequent lines until the next @samp{#+CATEGORY} line, or the
@ -4805,6 +4920,7 @@ These lines provide settings for exporting files. For more details see
@node The very busy C-c C-c key, Clean view, In-buffer settings, Miscellaneous @node The very busy C-c C-c key, Clean view, In-buffer settings, Miscellaneous
@section The very busy C-c C-c key @section The very busy C-c C-c key
@kindex C-c C-c @kindex C-c C-c
@cindex C-c C-c, overview
The key @kbd{C-c C-c} has many purposes in org-mode, which are all The key @kbd{C-c C-c} has many purposes in org-mode, which are all
mentioned scattered throughout this manual. One specific function of mentioned scattered throughout this manual. One specific function of
@ -4994,7 +5110,6 @@ with other code out there.
* Conflicts:: Packages that lead to conflicts * Conflicts:: Packages that lead to conflicts
@end menu @end menu
@node Cooperation, Conflicts, Interaction, Interaction @node Cooperation, Conflicts, Interaction, Interaction
@subsection Packages that Org-mode cooperates with @subsection Packages that Org-mode cooperates with
@ -5325,6 +5440,8 @@ Linking to VM/BBDB/GNUS was inspired by @i{Tom Shannon}'s
@i{Daniel Sinder} came up with the idea of internal archiving by locking @i{Daniel Sinder} came up with the idea of internal archiving by locking
subtrees. subtrees.
@item @item
@i{Dale Smith} proposed link abbreviations.
@item
@i{David O'Toole} wrote @file{org-publish.el} and drafted the manual @i{David O'Toole} wrote @file{org-publish.el} and drafted the manual
chapter about publishing. chapter about publishing.
@item @item

Binary file not shown.

View File

@ -1,5 +1,5 @@
% Reference Card for Org Mode % Reference Card for Org Mode
\def\orgversionnumber{4.50} \def\orgversionnumber{4.51}
\def\year{2006} \def\year{2006}
% %
%**start of header %**start of header
@ -424,10 +424,11 @@ formula, \kbd{:=} a named-field formula.
\key{insert file link with file name completion}{C-u C-c C-l} \key{insert file link with file name completion}{C-u C-c C-l}
\key{edit (also hidden part of) link at point}{C-c C-l} \key{edit (also hidden part of) link at point}{C-c C-l}
\key{open file links in emacs (\kbd{C-u} : in emacs)}{C-c C-o} \key{open file links in emacs}{C-c C-o}
\key{open link at point (3: in emacs)}{mouse-2/3} \key{...force open in emacs/other window}{C-u C-c C-o}
%\key{open file links in emacs}{mouse-3} \key{open link at point}{mouse-1/2}
%\key{record a position in mark ring}{C-c \%} \key{...force open in emacs/other window}{mouse-3}
\key{record a position in mark ring}{C-c \%}
\key{jump back to last followed link(s)}{C-c \&} \key{jump back to last followed link(s)}{C-c \&}
{\bf Internal Links} {\bf Internal Links}