diff --git a/org b/org index 3414c815f..f003931fa 100644 --- a/org +++ b/org @@ -5,7 +5,7 @@ START-INFO-DIR-ENTRY * Org Mode: (org). outline-based notes management and organizer END-INFO-DIR-ENTRY - This manual is for Org-mode (version 4.19a). + This manual is for Org-mode (version 4.19b). Copyright (C) 2004, 2005, 2006 Free Software Foundation @@ -27,7 +27,7 @@ File: org, Node: Top, Next: Introduction, Prev: (dir), Up: (dir) Org Mode Manual *************** -This manual is for Org-mode (version 4.19a). +This manual is for Org-mode (version 4.19b). Copyright (C) 2004, 2005, 2006 Free Software Foundation @@ -265,6 +265,12 @@ this: which will select Org-mode for this buffer no matter what the file's name is. See also the variable `org-insert-mode-line-in-empty-file'. + If you are upgrading to version 4.20 or later from a version 4.14 or +earlier, some links may stop working. These are links containing space +characters. To make such links work again, and also to transform all +links from the old `' format to the new `[[link]]' format, +execute once in each file: `M-x org-upgrade-old-links'. +  File: org, Node: Feedback, Prev: Installation and activation, Up: Introduction @@ -281,6 +287,7 @@ including the version information of Emacs (`C-h v emacs-version Org-mode related setup in `.emacs'. If an error occurs, a traceback can be very useful. Often a small example file helps, along with clear information about: + 1. What exactly did you do? 2. What did you expect to happen? @@ -339,9 +346,10 @@ Org-mode start with one or more stars, on the left margin. For example: *** 3rd level more text * Another top level headline - Some people find the many stars too noisy and would prefer an -outline that has whitespace followed by a single star as headline -starters. *Note Clean view:: describes a setup to realize this. + +Some people find the many stars too noisy and would prefer an outline +that has whitespace followed by a single star as headline starters. +*Note Clean view:: describes a setup to realize this.  File: org, Node: Visibility cycling, Next: Motion, Prev: Headlines, Up: Document Structure @@ -355,15 +363,19 @@ visibility in the buffer. `' Rotate current subtree between the states + ,-> FOLDED -> CHILDREN -> SUBTREE --. '-----------------------------------' + At the beginning of the buffer (or when called with `C-u'), this does the same as the command `S-' below. `S-' Rotate the entire buffer between the states + ,-> OVERVIEW -> CONTENTS -> SHOW ALL --. '--------------------------------------' + Note that inside tables, `S-' jumps to the previous field. `C-c C-a' @@ -512,10 +524,12 @@ use the variable `org-agenda-custom-commands' to define fast keyboard access to specific sparse trees. These commands will then be accessible through the agenda dispatcher (*note Agenda dispatcher::). For example: + (setq org-agenda-custom-commands '(("f" occur-tree "FIXME"))) - will define the key `C-c a f' as a shortcut for creating a sparse -tree matching the string `FIXME'. + +will define the key `C-c a f' as a shortcut for creating a sparse tree +matching the string `FIXME'. Other commands are using sparse trees as well. For example `C-c C-v' creates a sparse TODO tree (*note TODO basics::). @@ -653,7 +667,8 @@ only type |Name|Phone|Age |- - and then press to align the table and start filling in fields. + +and then press to align the table and start filling in fields. When typing text into a field, Org-mode treats , , and all character keys in a special way, so that inserting and deleting @@ -811,7 +826,13 @@ Miscellaneous `C-c `' Edit the current field in a separate window. This is useful for - fields that are not fully visible (*note Narrow columns::). + fields that are not fully visible (*note Narrow columns::). When + called with a `C-u' prefix, just make the full field visible, so + that it can be edited in place. + +`C-c ' + This is an alias for `C-u C-c `' to make the current field fully + visible. `C-c |' Toggle the visibility of vertical lines in tables. The lines are @@ -835,8 +856,10 @@ Miscellaneous If you don't like the automatic table editor because it gets in your way on lines which you would like to start with `|', you can turn it off with + (setq org-enable-table-editor nil) - The only table command which then still works is `C-c C-c' to do a + +The only table command which then still works is `C-c C-c' to do a manual re-align.  @@ -860,9 +883,10 @@ to no more than this value. | 3 | This is a long chunk of text | ----/ | 3 | This=> | | 4 | four | | 4 | four | |---+------------------------------| |---+--------| - Fields that are wider become clipped and end in the string `=>'. -Note that the full text is still in the buffer, it is only invisible. -To see the full text, hold the mouse over the field - a tooltip window + +Fields that are wider become clipped and end in the string `=>'. Note +that the full text is still in the buffer, it is only invisible. To +see the full text, hold the mouse over the field - a tooltip window will show the full content. To edit such a field, use the command `C-c `' (that is `C-c' followed by the backquote). This will open a new window with the full field. Edit it and finish with `C-c C-c'. @@ -873,6 +897,7 @@ be aligned before it looks nice. Setting the option `org-startup-align-all-tables' will realign all tables in a file upon visiting, but also slow down startup. You can also set this option on a per-file basis with: + #+STARTUP: align #+STARTUP: noalign @@ -947,6 +972,7 @@ or fixed display format, respectively, and `D', `R', `F', and `S' to turn on degrees, radians, fraction and symbolic modes, respectively. In addition, you may provide a `printf' format specifier to reformat the final result. A few examples: + $1+$2 Sum of first and second field $1+$2;%.2f Same, format result to two decimals exp($2)+exp($1) Math functions can be used @@ -1013,6 +1039,7 @@ you want to be able to assign a formula to an individual field (instead of an entire column) you need to reserve the first column of the table for special marking characters. Here is an example of a table that collects exam results of students and makes use of these features: + |---+---------+--------+--------+--------+-------+------| | | Student | Prob 1 | Prob 2 | Prob 3 | Total | Note | |---+---------+--------+--------+--------+-------+------| @@ -1157,6 +1184,7 @@ might want to use it also in other modes like text-mode or mail-mode. The minor mode Orgtbl-mode makes this possible. You can always toggle the mode with `M-x orgtbl-mode'. To turn it on by default, for example in mail mode, use + (add-hook 'mail-mode-hook 'turn-on-orgtbl)  @@ -1209,24 +1237,24 @@ File: org, Node: Link format, Next: Internal links, Prev: Hyperlinks, Up: Hy =============== Org-mode will recognize plain URL-like links in the buffer and activate -them as clickable links. However, the general linkformat in Org-mode -looks like: +them as clickable links. However, the general linkformat looks like +this: + [[link][description]] or alternatively [[link]] + The description part is optional. Once a link in the buffer is complete, Org-mode will change the display so that `description'( is displayed instead of `[[link][description]]' and `link' is displayed instead of `[[link]]'. Links will be highlighted in the face `org-link', which by default is an underlined face. You can directly edit the visible part of a link. To edit the invisible part, use `C-c -C-l' with the cursor on the link(1). - - ---------- Footnotes ---------- - - (1) You can also position the cursor directly after the link and -press to remove the (invisible) closing bracket `]'. This -makes the link incomplete, and shows the full raw link text for you to -edit. You may also use the menu entry `Org->Hperlinks->Literal links' -to unhide all links. +C-l' with the cursor on the link. If you place the cursor at the +beginning of end of the displayed text and press , you will +remove the (invisible) bracket at that location. This makes the link +incomplete and the internals are again displayed as plain text. +Inserting the missing bracket does hide the link internal again. +Finally, you may also use the menu entry `Org->Hperlinks->Literal +links' to unhide all links.  File: org, Node: Internal links, Next: External links, Prev: Link format, Up: Hyperlinks @@ -1242,6 +1270,7 @@ or with a mouse click (*note Managing links::). The preferred match for such a link is a dedicated target: The same string in double angular brackets. Targets may be located anywhere, often it is convenient to put them into a comment line, for example + # <> If no dedicated target exists, Org-mode will search for the words in @@ -1251,6 +1280,7 @@ star like `*My Target' restrict the search to headlines. When searching, Org-mode will first try an exact match, but then move on to more and more lenient searches. For example, the link `[[*My Targets]]' will find any of the following: + ** My targets ** TODO my targets are bright ** my 20 targets are @@ -1293,11 +1323,13 @@ File: org, Node: CamelCase links, Prev: Radio targets, Up: Internal links 4.2.2 CamelCase words as links ------------------------------ -As an alternative to `[[...]]' links, Org-mode also supports CamelCase -words as links. This feature is not turned on by default because of -the occasional inconsistencies this system suffers from. To activate -CamelCase words as links, and to make headline completion offer -CamelCase version of headlines, the following customization is needed: +Org-mode also supports CamelCase words as links. This feature is not +turned on by default because of the inconsistencies this system suffers +from. It is mainly kept for backward compatibility, but the use is +deprecated. To activate CamelCase words as links, and to make headline +completion offer CamelCase version of headlines, the following +customization is needed: + (setq org-activate-camels t org-file-link-context-use-camel-case t) @@ -1308,40 +1340,37 @@ File: org, Node: External links, Next: Managing links, Prev: Internal links, ================== Org-mode supports links to files, websites, Usenet and email messages; -and BBDB database entries. External links are plain-text URL-like -locators, optionally enclosed in angular brackets. The following list -shows examples for each link type. +and BBDB database entries. External links are URL-like locators. The +following list shows examples for each link type. - on the web - file, absolute path - file, relative path - Usenet link - Mail link - VM folder link - VM message link - VM on remote machine - WANDERLUST folder link - WANDERLUST message link - MH-E folder link - MH-E message link - RMAIL folder link - RMAIL message link - GNUS group link - GNUS article link - BBDB link - (1) A shell command + http://www.astro.uva.nl/~dominik on the web + file:/home/dominik/images/jupiter.jpg file, absolute path + file:papers/last.pdf file, relative path + news:comp.emacs Usenet link + mailto:adent@galaxy.net Mail link + vm:folder VM folder link + vm:folder#id VM message link + vm://myself@some.where.org/folder#id VM on remote machine + wl:folder WANDERLUST folder link + wl:folder#id WANDERLUST message link + mhe:folder MH-E folder link + mhe:folder#id MH-E message link + rmail:folder RMAIL folder link + rmail:folder#id RMAIL message link + gnus:group GNUS group link + gnus:group#id GNUS article link + bbdb:Richard Stallman BBDB link + shell:ls *.org(1) A shell command - A link may contain space characters and is terminated by `>' or by -the end of a line. In tables, the end of a table field also terminates -a link. Angle brackets around a link are not required, but are -recommended to avoid problems with punctuation and other text following -the link. + A link should be enclosed in double brackets and may contain a +descriptive text to be displayed instead of the url (*note Link +format::), for example: - To display a descriptive text instead of the URL, enclose the link -into double brackets and add the descriptive text like this: - [[][GNU Emacs]] - Links inserted with `C-c C-l' automatically use the double bracket -format (*note Managing links::). + [[http://www.gnu.org/software/emacs/][GNU Emacs]] + + Org-mode also finds external links in the normal text and activates +them as links. Plain text links cannot contain spaces. To remove +ambiguities about the end of the link, enclose them in angular brackets. ---------- Footnotes ---------- @@ -1376,31 +1405,41 @@ insert it into an org-mode file, and to follow the link. buffer. You can just type a link, using text for an internal link, or one of the link type prefixes mentioned in the examples above. Through completion, all links stored during the current - session can be accessed. When called with prefix arg, you can use - file name completion to enter a file link. The link will be - formatted as given in the variable `org-link-format' and inserted - into the buffer, along with a descriptive text. Note that you - don't have to use this command to insert a link. Links in - Org-mode are plain text, and you can type or paste them straight - into the buffer. + session can be accessed. The link will be formatted as given in + the variable `org-link-format' and inserted into the buffer, along + with a descriptive text. Note that you don't have to use this + command to insert a link. Links in Org-mode are plain text, and + you can type or paste them straight into the buffer. By using + this command, the links are automatically enclosed in double + brackets, and you will be asked for the optional descriptive text. + +`C-u C-c C-l' + When `C-c C-l' is called with a `C-u' prefix argument, a link to a + file will be inserted and you may use file name completion to + select the name of the file. The path to the file is inserted + relative to the directory of the current org file, if the linked + file is in the current directory or in a subdirectory of it. + Otherwise an absolute path, if possible with `~/' for your home + directory is used. You can force an absolute path with two `C-u' + prefixes. + +`C-c C-l with cursor on existing link' + When the cursor is on an existing link, `C-c C-l' allows to edit + the link and description parts of the link. `C-c C-o' Open link at point. This will launch a web browser for URLs (using - `browse-url-at-point'), run vm/gnus/bbdb for the corresponding - links, and execute the command in a shell link. When the cursor - is on am internal link, this commands runs the corresponding - search. When the cursor is on a TAGS list in a headline, it - creates the corresponding TAGS view. Furthermore, it will visit - text files in `file:' links with Emacs and select a suitable - application for non-text files. Classification of files is based - on file extension only. See option `org-file-apps'. If there is - no link at point, the current subtree will be searched for one. - If you want to override the default application and visit the file - with Emacs, use a `C-u' prefix. If the cursor is on a time stamp, - it compiles the agenda for that date. - - *IMPORTANT*: Be careful not to use any dangerous commands in a - shell link. + `browse-url-at-point'), run vm/mh-e/wanderlust/rmail/gnus/bbdb for + the corresponding links, and execute the command in a shell link. + When the cursor is on an internal link, this commands runs the + corresponding search. When the cursor is on a TAGS list in a + headline, it creates the corresponding TAGS view. If the cursor + is on a time stamp, it compiles the agenda for that date. + Furthermore, it will visit text files in `file:' links with Emacs + and select a suitable application for non-text files. + Classification of files is based on file extension only. See + option `org-file-apps'. If you want to override the default + application and visit the file with Emacs, use a `C-u' prefix. `mouse-2' `mouse-1' @@ -1429,11 +1468,13 @@ File: org, Node: Search Options, Next: Remember, Prev: Managing links, Up: H File links can contain additional information to make Emacs jump to a particular location in the file when following a link. This can be a line number or a search option after a double(1) colon. For example: - - - - - Here is what these options do. + + [[file:~/code/main.c::255]] + [[file:~/xx.org::My Target]] + [[file:~/xx.org::*My Target]] + [[file:~/xx.org::/regexp/]] + +Here is what these options do. `255' Jump to line 255. @@ -1495,8 +1536,9 @@ journal entries, you could use: (setq org-remember-templates '((?t "* TODO %?\n %i\n %a" "~/org/TODO.org") (?j "* %U %?\n\n %i\n %a" "~/org/JOURNAL.org"))) - In these entries, the character specifies how to select the -template, the first string specifies the template, and the second string + +In these entries, the character specifies how to select the template, +the first string specifies the template, and the second string specifies a default file (overruling `org-default-notes-file') as a target for this note. @@ -1504,7 +1546,9 @@ target for this note. for a key to select the template and then prepare the buffer like * TODO - or + +or + * [2006-03-21 Tue 15:37] @@ -1587,8 +1631,10 @@ The most important commands to work with TODO entries are: `C-c C-t' Rotate the TODO state of the current item between + ,-> (unmarked) -> TODO -> DONE --. '--------------------------------' + The same rotation can also be done "remotely" from the timeline and agenda buffers with the `t' command key (*note Agenda commands::). @@ -1619,15 +1665,17 @@ File: org, Node: Progress logging, Next: TODO extensions, Prev: TODO basics, If you want to keep track of _when_ a certain TODO item was finished, turn on logging with + (setq org-log-done t) - Then each time you turn a TODO entry into DONE using either `C-c -C-t' in the Org-mode buffer or `t' in the agenda buffer, a line -`CLOSED: [timestamp]' will be inserted just after the headline. If you -turn the entry back into a TODO item again through further state -cycling, that line will be removed again. In the timeline (*note -Timeline::) and in the agenda (*note Weekly/Daily Agenda::), you can -then use the `L' key to display the TODO items closed on each day, -giving you an overview of what has been done on a day. + +Then each time you turn a TODO entry into DONE using either `C-c C-t' +in the Org-mode buffer or `t' in the agenda buffer, a line `CLOSED: +[timestamp]' will be inserted just after the headline. If you turn the +entry back into a TODO item again through further state cycling, that +line will be removed again. In the timeline (*note Timeline::) and in +the agenda (*note Weekly/Daily Agenda::), you can then use the `L' key +to display the TODO items closed on each day, giving you an overview of +what has been done on a day.  File: org, Node: TODO extensions, Next: Priorities, Prev: Progress logging, Up: TODO items @@ -1951,7 +1999,7 @@ File: org, Node: Tags, Next: Agenda Views, Prev: Timestamps, Up: Top ****** If you wish to implement a system to cross-correlate information, an -excellent ways is assigning tags to headline. Org-mode has extensive +excellent way is to assign tags to headline. Org-mode has extensive support for using tags. Every headline can contain a list of tags, at the end of the @@ -1978,8 +2026,9 @@ well. For example, in the list * Meeting with the French group :WORK: ** Summary by Frank :BOSS:NOTES: *** TODO Prepare slides for him :ACTION: - the final heading will have the tags `:WORK:', `:BOSS:', `:NOTES:', -and `:ACTION:'. When executing tag searches and Org-mode finds that a + +the final heading will have the tags `:WORK:', `:BOSS:', `:NOTES:', and +`:ACTION:'. When executing tag searches and Org-mode finds that a certain headline matches the search criterion, it will not check any sublevel headline, assuming that these likely also match, and that the list of matches can become very long. However, this may not be what @@ -2054,6 +2103,7 @@ sorted and displayed in an organized way. Org-mode can select items based on various criteria, and display them in a separate buffer. Three different views are provided: + * an _agenda_ that is like a calendar and shows information for specific dates @@ -2061,7 +2111,8 @@ in a separate buffer. Three different views are provided: * a _tags view_ that shows information based on the tags associated with headlines in the outline tree. - The extracted information is displayed in a special _agenda buffer_. + +The extracted information is displayed in a special _agenda buffer_. This buffer is read-only, but provides commands to visit the corresponding locations in the original Org-mode files, and even to edit these files remotely. @@ -2098,7 +2149,8 @@ way to maintain it is through the following commands `C-,' Cycle through agenda file list, visiting one file after the other. - The Org menu contains the current list of files and can be used to + +The Org menu contains the current list of files and can be used to visit any of them. ---------- Footnotes ---------- @@ -2145,12 +2197,14 @@ on the current buffer instead of the list of agenda files. `org-agenda-custom-commands'. You can customize this variable, for example by pressing `C-c a C'. You can also directly set it with Emacs Lisp in `.emacs'. For example: + (setq org-agenda-custom-commands '(("w" todo "WAITING") ("u" tags "+BOSS-URGENT") ("U" tags-tree "+BOSS-URGENT") ("f" occur-tree "\\"))) - will define `C-c a w' as a global search for TODO entries with + +will define `C-c a w' as a global search for TODO entries with `WAITING' as the TODO keyword, `C-c a u' as a global tags search for headlines marked `:BOSS:' but not `:URGENT:', `C-c a U' to do the same search but only in the current buffer and display the result as a @@ -2195,7 +2249,9 @@ File: org, Node: Categories, Next: Time-of-day specifications, Prev: Weekly/D In the agenda buffer, each entry is preceded by a _category_, which is derived from the file name. The category can also be set with a special line anywhere in the buffer, looking like this: + #+CATEGORY: Thesis + If there are several such lines in a file, each specifies the category for the text below it (but the first category also applies to any text before the first CATEGORY line). The display in the agenda @@ -2264,7 +2320,8 @@ the diary. agenda, you only need to customize the variable (setq org-agenda-include-diary t) - After that, everything will happen automatically. All diary entries + +After that, everything will happen automatically. All diary entries including holidays, anniversaries etc will be included in the agenda buffer created by Org-mode. , , and can be used from the agenda buffer to jump to the diary file in order to edit existing @@ -2368,7 +2425,8 @@ is to give an overview over events in a project. Show a time-sorted view of the org file, with all time-stamped items. When called with a `C-u' prefix, all unfinished TODO entries (scheduled or not) are also listed under the current date. - The commands available in the timeline buffer are listed in *Note + +The commands available in the timeline buffer are listed in *Note Agenda commands::.  @@ -2598,8 +2656,10 @@ headlines, defining a general document structure. Additional levels will be exported as itemized lists. If you want that transition to occur at a different level, specify it with a prefix argument. For example, + C-1 C-c C-x a org-export-as-ascii - creates only top level headlines and does the rest as items. Lines + +creates only top level headlines and does the rest as items. Lines starting with `#' and subtrees starting with the word `COMMENT' will not be exported. @@ -2630,8 +2690,10 @@ headlines, defining a general document structure. Additional levels will be exported as itemized lists. If you want that transition to occur at a different level, specify it with a prefix argument. For example, + C-2 C-c C-x b - creates two levels of headings and does the rest as items. + +creates two levels of headings and does the rest as items. * Menu: @@ -2700,7 +2762,8 @@ Completion::). #+TEXT: Some descriptive text to be inserted at the beginning. #+TEXT: Several lines may be given. #+OPTIONS: H:2 num:t toc:t \n:nil t ::t |:t ^:t *:nil TeX:t - The OPTIONS line is a compact form to specify export settings. Here + +The OPTIONS line is a compact form to specify export settings. Here you can: H: set the number of headline levels for export num: turn on/off section-numbers @@ -2879,7 +2942,8 @@ the buffer) #+STARTUP: showstars #+STARTUP: hidestars - Press `C-c C-c' with the cursor in a `STARTUP' line to activate the + +Press `C-c C-c' with the cursor in a `STARTUP' line to activate the modifications. With stars hidden, the tree becomes: @@ -2983,19 +3047,35 @@ File: org, Node: FAQ, Next: Interaction, Prev: TTY keys, Up: Miscellaneous turn it on for all `README' files? (add-to-list 'auto-mode-alist '("README$" . org-mode)) - 2. All these stars are driving me mad, I just find the Emacs outlines + 2. Some of my links stopped working after I upgraded to a version + 4.20 or later. Why is this, and how can I fix it? + The newer versions of Org-mode have a better link system and no + longer allow unescaped space characters as part of a link. To fix + these links, and also to move all `' style links to the new + `[[link]]' system, execute once in each Org-mode file: `M-x + org-upgrade-old-links'. + + 3. I really like the old style links with angular brackets better. + Please give them back to me, don't tell me it is not possible! + Would I let you down like that? If you must (even if I don't + understand why), you can do this + (setq org-allow-space-in-plain-links t + org-link-style 'plain + org-link-format "<%s>") + + 4. All these stars are driving me mad, I just find the Emacs outlines unreadable. Can't you just put white space and a single star as a starter for headlines? See *Note Clean view::. - 3. I would like to have two windows on the same Org-mode file, but + 5. I would like to have two windows on the same Org-mode file, but with different outline visibility. Is that possible? In GNU Emacs, you may use _indirect buffers_ which do exactly this. See the documentation on the command `make-indirect-buffer'. In XEmacs, this is currently not possible because of the different outline implementation. - 4. When I export my TODO list, every TODO item becomes a separate + 6. When I export my TODO list, every TODO item becomes a separate section. How do I enforce these items to be exported as an itemized list? If you plan to use ASCII or HTML export, make sure things you want @@ -3013,42 +3093,42 @@ File: org, Node: FAQ, Next: Interaction, Prev: TTY keys, Up: Miscellaneous +OPTIONS: H:2; ... - 5. I would like to export only a subtree of my file to HTML. How? + 7. I would like to export only a subtree of my file to HTML. How? If you want to export a subtree, mark the subtree as region and then export. Marking can be done with `C-c @ C-x C-x', for example. - 6. Org-mode takes over the S-cursor keys. I also want to use + 8. Org-mode takes over the S-cursor keys. I also want to use CUA-mode, is there a way to fix this conflict? Yes, see *Note Interaction::. - 7. Is there an easy way to insert an empty table template with a + 9. Is there an easy way to insert an empty table template with a default number of rows and columns? To insert an empty table template, just type `|-' and use . The default size can be changed with the variable `org-table-default-size'. However, just starting to type the first line is usually much easier. - 8. One of my table columns has started to fill up with `#ERROR'. + 10. One of my table columns has started to fill up with `#ERROR'. What is going on? Org-mode tried to compute the column from other fields using a formula stored in the `#+TBLFMT:' line just below the table, and the evaluation of the formula fails. Fix the fields used in the formula, or fix the formula, or remove it! - 9. When I am in the last column of a table and just above a + 11. When I am in the last column of a table and just above a horizontal line in the table, pressing TAB creates a new table line before the horizontal line. How can I quickly move to the line below the horizontal line instead? Press (to get on the separator line) and then . Or configure the variable `org-table-tab-jumps-over-hlines'. - 10. How can I change the indentation of an entire table without fixing + 12. How can I change the indentation of an entire table without fixing every line by hand? The indentation of a table is set by the first line. So just fix the indentation of the first line and realign with . - 11. Is it possible to include entries from org-mode files into my + 13. Is it possible to include entries from org-mode files into my emacs diary? Since the org-mode agenda is much more powerful and can contain the diary (*note Calendar/Diary integration::), you should think twice @@ -3128,9 +3208,11 @@ Org-mode can cooperate with the following packages: `org-CUA-compatible'. When set, Org-mode will move the following keybindings in org-mode files, and in the agenda buffer (but not during date selection). + S-UP -> M-p S-DOWN -> M-n S-LEFT -> M-- S-RIGHT -> M-+ S-RET -> C-S-RET + Yes, these are unfortunately more difficult to remember. If you want to have other replacement keys, look at the variable `org-disputed-keys'. @@ -3216,13 +3298,14 @@ Org-mode would not be what it is without your input. * Pavel Chalmoviansky influenced the agenda treatment of items with specified time. - * Sacha Chua suggested to copy linking code from Planner (we did take - some). + * Sacha Chua suggested to copy some linking code from Planner. * Christian Egli converted the documentation into TeXInfo format, patched CSS formatting into the HTML exporter, and inspired the agenda. + * Nic Ferrier contributed mailcap and XML support. + * Kai Grossjohann pointed out key-binding conflicts caused by Org-mode. @@ -3261,10 +3344,13 @@ Org-mode would not be what it is without your input. * David Wainberg suggested archiving, and improvements to the linking system. - * Org-mode's linking system was an independent development, but with - time has evolved to work similar to John's implementation in - `emacs-wiki-mode'. In particular, I adopted his way to make the - link itself invisible and only show descriptive text. + * John Wiegley wrote `emacs-wiki.el' and `planner.el'. The + development of Org-mode was fully independent, and both systems are + really different beasts in their basic ideas and implementation + details. However, I have later looked at John's code and learned + from his implementation of (i) links where the link itself is + hidden and only a description is shown, and (ii) popping up a + calendar to select a date. * Carsten Wimmer suggested some changes and helped fix a bug in linking to GNUS. @@ -3288,7 +3374,7 @@ File: org, Node: Index, Next: Key Index, Prev: Miscellaneous, Up: Top * active region <1>: HTML export. (line 10) * active region <2>: ASCII export. (line 6) * active region <3>: Built-in table editor. - (line 166) + (line 167) * active region: Structure editing. (line 46) * agenda: Weekly/Daily Agenda. (line 6) * agenda commands, custom: Agenda dispatcher. (line 6) @@ -3296,6 +3382,7 @@ File: org, Node: Index, Next: Key Index, Prev: Miscellaneous, Up: Top * agenda files, removing buffers: Agenda commands. (line 187) * agenda views: Agenda Views. (line 6) * agenda, for single file: Timeline. (line 6) +* angular brackets, around links: External links. (line 35) * applescript, for calendar update: iCalendar export. (line 38) * archive locations: Archiving. (line 13) * archiving: Archiving. (line 6) @@ -3311,7 +3398,7 @@ File: org, Node: Index, Next: Key Index, Prev: Miscellaneous, Up: Top * calc.el: Interaction. (line 17) * calculations, in tables <1>: Table calculations. (line 6) * calculations, in tables: Built-in table editor. - (line 136) + (line 137) * calendar integration: Calendar/Diary integration. (line 6) * calendar, for selecting date: Creating timestamps. (line 68) @@ -3327,7 +3414,7 @@ File: org, Node: Index, Next: Key Index, Prev: Miscellaneous, Up: Top * completion, of CamelCase links <1>: Completion. (line 6) * completion, of CamelCase links: CamelCase links. (line 6) * completion, of dictionary words: Completion. (line 6) -* completion, of file names: Managing links. (line 23) +* completion, of file names: Managing links. (line 36) * completion, of links: Managing links. (line 23) * completion, of option keywords <1>: Completion. (line 6) * completion, of option keywords: Export options. (line 6) @@ -3340,7 +3427,7 @@ File: org, Node: Index, Next: Key Index, Prev: Miscellaneous, Up: Top * completion, of TODO keywords: Workflow states. (line 12) * constants, in calculations: Formula syntax. (line 26) * constants.el: Interaction. (line 27) -* contents, global visibility state: Visibility cycling. (line 17) +* contents, global visibility state: Visibility cycling. (line 19) * copying, of subtrees: Structure editing. (line 6) * creating timestamps: Creating timestamps. (line 6) * CUA.el: Interaction. (line 39) @@ -3364,10 +3451,10 @@ File: org, Node: Index, Next: Key Index, Prev: Miscellaneous, Up: Top * editing tables: Tables. (line 6) * editing, of table formulas: Editing/debugging formulas. (line 6) -* emphasized text: Export options. (line 21) +* emphasized text: Export options. (line 22) * evaluate time range: Creating timestamps. (line 63) * exporting: Exporting. (line 6) -* exporting a subtree: FAQ. (line 42) +* exporting a subtree: FAQ. (line 58) * exporting, not: Comment lines. (line 6) * extended TODO keywords: TODO extensions. (line 6) * external links: External links. (line 6) @@ -3375,14 +3462,14 @@ File: org, Node: Index, Next: Key Index, Prev: Miscellaneous, Up: Top * feedback: Feedback. (line 6) * file links: External links. (line 6) * file links, searching: Search Options. (line 6) -* file name completion: Managing links. (line 23) +* file name completion: Managing links. (line 36) * files, adding to agenda list: Agenda files. (line 12) * filing subtrees: Archiving. (line 6) * fixed width: HTML formatting. (line 28) -* fixed-width sections: Export options. (line 21) +* fixed-width sections: Export options. (line 22) * folded, subtree visibility state: Visibility cycling. (line 10) * folding, sparse trees: Sparse trees. (line 6) -* following links: Managing links. (line 36) +* following links: Managing links. (line 50) * format specifier: Formula syntax. (line 34) * format, of links: Link format. (line 6) * formula editing: Editing/debugging formulas. @@ -3392,14 +3479,14 @@ File: org, Node: Index, Next: Key Index, Prev: Miscellaneous, Up: Top (line 6) * formula, for table column: Column formulas. (line 6) * formula, in tables: Built-in table editor. - (line 136) + (line 137) * global keybindings: Installation and activation. (line 6) * global TODO list: Global TODO list. (line 6) -* global visibility states: Visibility cycling. (line 17) +* global visibility states: Visibility cycling. (line 19) * GNUS links: External links. (line 6) * hand-formatted lists: HTML formatting. (line 9) -* headline levels: Export options. (line 21) +* headline levels: Export options. (line 22) * headline levels, for exporting <1>: HTML export. (line 22) * headline levels, for exporting: ASCII export. (line 12) * headline navigation: Motion. (line 6) @@ -3412,8 +3499,8 @@ File: org, Node: Index, Next: Key Index, Prev: Miscellaneous, Up: Top * HTML tags: HTML formatting. (line 33) * hyperlinks: Hyperlinks. (line 6) * iCalendar export: iCalendar export. (line 6) -* indentation, of tables: FAQ. (line 73) -* indirect buffers: FAQ. (line 18) +* indentation, of tables: FAQ. (line 89) +* indirect buffers: FAQ. (line 34) * inheritance, of tags: Tag inheritance. (line 6) * inserting links: Managing links. (line 23) * installation: Installation and activation. @@ -3425,20 +3512,20 @@ File: org, Node: Index, Next: Key Index, Prev: Miscellaneous, Up: Top * keybindings, global: Installation and activation. (line 6) * keyword options: Per file keywords. (line 6) -* linebreak preservation: Export options. (line 21) +* linebreak preservation: Export options. (line 22) * link completion: Managing links. (line 23) * link format: Link format. (line 6) * links, external: External links. (line 6) * links, internal: Internal links. (line 6) -* links, returning to: Managing links. (line 66) +* links, returning to: Managing links. (line 76) * lists, hand-formatted: HTML formatting. (line 9) * lists, ordered: Plain Lists. (line 6) * lists, plain: Plain Lists. (line 6) * logging, of progress: Progress logging. (line 6) * maintainer: Feedback. (line 6) -* make-indirect-buffer: FAQ. (line 18) -* mark ring: Managing links. (line 62) -* marking characters, tables: Advanced features. (line 33) +* make-indirect-buffer: FAQ. (line 34) +* mark ring: Managing links. (line 72) +* marking characters, tables: Advanced features. (line 34) * matching, of tags: Matching headline tags. (line 6) * matching, tags: Tags. (line 6) @@ -3464,24 +3551,25 @@ File: org, Node: Index, Next: Key Index, Prev: Miscellaneous, Up: Top * outline tree: Headlines. (line 6) * outline-mode: Outlines. (line 6) * outlines: Outlines. (line 6) -* overview, global visibility state: Visibility cycling. (line 17) +* overview, global visibility state: Visibility cycling. (line 19) * packages, interaction with other: Interaction. (line 6) * pasting, of subtrees: Structure editing. (line 6) * per file keywords: Per file keywords. (line 6) * plain lists: Plain Lists. (line 6) -* printing sparse trees: Sparse trees. (line 37) +* plain text external links: External links. (line 35) +* printing sparse trees: Sparse trees. (line 39) * priorities: Priorities. (line 6) * priorities, of agenda items: Sorting of agenda items. (line 6) * progress logging: Progress logging. (line 6) * promotion, of subtrees: Structure editing. (line 6) -* quoted html tags: Export options. (line 21) +* quoted html tags: Export options. (line 22) * ranges, time: Time stamps. (line 6) * recomputing table fields: Column formulas. (line 27) * region, active <1>: HTML export. (line 10) * region, active <2>: ASCII export. (line 6) * region, active <3>: Built-in table editor. - (line 166) + (line 167) * region, active: Structure editing. (line 46) * remember.el <1>: Interaction. (line 39) * remember.el: Remember. (line 6) @@ -3489,17 +3577,17 @@ File: org, Node: Index, Next: Key Index, Prev: Miscellaneous, Up: Top * SCHEDULED keyword: Time stamps. (line 39) * scheduling: Time stamps. (line 6) * search option in file links: Search Options. (line 6) -* section-numbers: Export options. (line 21) +* section-numbers: Export options. (line 22) * setting tags: Setting tags. (line 6) * SHELL links: External links. (line 6) -* show all, command: Visibility cycling. (line 23) -* show all, global visibility state: Visibility cycling. (line 17) +* show all, command: Visibility cycling. (line 27) +* show all, global visibility state: Visibility cycling. (line 19) * show hidden text: Visibility cycling. (line 6) * single file summary: Timeline. (line 6) * sorting, of agenda items: Sorting of agenda items. (line 6) * sparse tree, for deadlines: Creating timestamps. (line 38) -* sparse tree, for TODO: TODO basics. (line 18) +* sparse tree, for TODO: TODO basics. (line 20) * sparse tree, tag based: Tags. (line 6) * sparse trees: Sparse trees. (line 6) * spreadsheet capabilities: Table calculations. (line 6) @@ -3515,11 +3603,11 @@ File: org, Node: Index, Next: Key Index, Prev: Miscellaneous, Up: Top * table editor, builtin: Built-in table editor. (line 6) * table editor, table.el: table.el. (line 6) -* table of contents: Export options. (line 21) -* table, empty template: FAQ. (line 52) +* table of contents: Export options. (line 22) +* table, empty template: FAQ. (line 68) * table.el <1>: Interaction. (line 13) * table.el: table.el. (line 6) -* tables <1>: Export options. (line 21) +* tables <1>: Export options. (line 22) * tables: Tables. (line 6) * tables, export to HTML: HTML formatting. (line 24) * tag completion: Completion. (line 6) @@ -3529,9 +3617,9 @@ File: org, Node: Index, Next: Key Index, Prev: Miscellaneous, Up: Top (line 6) * templates, for remember: Remember. (line 26) * TeX interpretation: HTML formatting. (line 15) -* TeX macros: Export options. (line 21) +* TeX macros: Export options. (line 22) * TeX symbol completion: Completion. (line 6) -* TeX-like syntax for sub- and superscripts: Export options. (line 21) +* TeX-like syntax for sub- and superscripts: Export options. (line 22) * thanks: Acknowledgments. (line 6) * time stamps: Time stamps. (line 6) * time, reading in minibuffer: Creating timestamps. (line 68) @@ -3548,7 +3636,7 @@ File: org, Node: Index, Next: Key Index, Prev: Miscellaneous, Up: Top * transient-mark-mode <1>: HTML export. (line 10) * transient-mark-mode <2>: ASCII export. (line 6) * transient-mark-mode <3>: Built-in table editor. - (line 166) + (line 167) * transient-mark-mode: Structure editing. (line 46) * trees, sparse: Sparse trees. (line 6) * trees, visibility: Visibility cycling. (line 6) @@ -3560,7 +3648,7 @@ File: org, Node: Index, Next: Key Index, Prev: Miscellaneous, Up: Top * variables, for customization: Customization. (line 6) * vectors, in table calculations: Formula syntax. (line 23) * visibility cycling: Visibility cycling. (line 6) -* visible text, printing: Sparse trees. (line 37) +* visible text, printing: Sparse trees. (line 39) * VM links: External links. (line 6) * WANDERLUST links: External links. (line 6) * workflow states as TODO keywords: Workflow states. (line 6) @@ -3584,12 +3672,12 @@ File: org, Node: Key Index, Prev: Index, Up: Top * <1>: Agenda commands. (line 41) * <2>: Creating timestamps. (line 100) * : Built-in table editor. - (line 65) + (line 66) * : Agenda commands. (line 81) * : Agenda commands. (line 28) * <1>: Agenda commands. (line 35) * <2>: Built-in table editor. - (line 58) + (line 59) * <3>: Plain Lists. (line 37) * : Visibility cycling. (line 10) * > <1>: Agenda commands. (line 140) @@ -3597,42 +3685,44 @@ File: org, Node: Key Index, Prev: Index, Up: Top * C: Agenda commands. (line 170) * c: Agenda commands. (line 154) * C-#: Built-in table editor. - (line 156) + (line 157) * C-,: Agenda files. (line 18) * C-c !: Creating timestamps. (line 21) * C-c $: Archiving. (line 9) -* C-c %: Managing links. (line 62) -* C-c &: Managing links. (line 66) +* C-c %: Managing links. (line 72) +* C-c &: Managing links. (line 76) * C-c ' <1>: Editing/debugging formulas. (line 20) * C-c ': Built-in table editor. - (line 145) + (line 146) * C-c *: Built-in table editor. - (line 149) + (line 150) * C-c +: Built-in table editor. - (line 166) + (line 167) * C-c ,: Priorities. (line 18) * C-c -: Built-in table editor. - (line 93) + (line 94) * C-c .: Creating timestamps. (line 10) * C-c /: Sparse trees. (line 15) * C-c :: HTML export. (line 17) * C-c ;: Comment lines. (line 12) * C-c <: Creating timestamps. (line 25) +* C-c : Built-in table editor. + (line 189) * C-c =: Built-in table editor. - (line 136) + (line 137) * C-c >: Creating timestamps. (line 29) * C-c ? <1>: Editing/debugging formulas. (line 20) * C-c ?: Built-in table editor. - (line 162) + (line 163) * C-c [: Agenda files. (line 12) * C-c \: Tag searches. (line 9) * C-c ]: Agenda files. (line 15) * C-c ^: Built-in table editor. - (line 97) + (line 98) * C-c `: Built-in table editor. - (line 182) + (line 183) * C-c a a: Weekly/Daily Agenda. (line 9) * C-c a C: Agenda dispatcher. (line 30) * C-c a M: Matching headline tags. @@ -3643,15 +3733,15 @@ File: org, Node: Key Index, Prev: Index, Up: Top * C-c a m: Tag searches. (line 10) * C-c a T: Global TODO list. (line 15) * C-c a t <1>: Global TODO list. (line 9) -* C-c a t: TODO basics. (line 25) -* C-c C-a: Visibility cycling. (line 23) +* C-c a t: TODO basics. (line 27) +* C-c C-a: Visibility cycling. (line 27) * C-c C-b: Motion. (line 15) * C-c C-c <1>: Setting tags. (line 11) * C-c C-c <2>: table.el. (line 6) * C-c C-c <3>: Editing/debugging formulas. (line 16) * C-c C-c <4>: Built-in table editor. - (line 43) + (line 44) * C-c C-c: Plain Lists. (line 61) * C-c C-d: Creating timestamps. (line 37) * C-c C-f: Motion. (line 12) @@ -3659,17 +3749,17 @@ File: org, Node: Key Index, Prev: Index, Up: Top * C-c C-l: Managing links. (line 23) * C-c C-n: Motion. (line 8) * C-c C-o <1>: Creating timestamps. (line 33) -* C-c C-o: Managing links. (line 36) +* C-c C-o: Managing links. (line 50) * C-c C-p: Motion. (line 9) * C-c C-q <1>: Editing/debugging formulas. (line 20) * C-c C-q: Built-in table editor. - (line 120) + (line 121) * C-c C-r: Timeline. (line 13) * C-c C-s: Creating timestamps. (line 47) * C-c C-t: TODO basics. (line 13) * C-c C-u: Motion. (line 18) -* C-c C-v: TODO basics. (line 18) +* C-c C-v: TODO basics. (line 20) * C-c C-w: Creating timestamps. (line 38) * C-c C-x a: ASCII export. (line 6) * C-c C-x b: HTML export. (line 11) @@ -3678,26 +3768,27 @@ File: org, Node: Key Index, Prev: Index, Up: Top * C-c C-x C-i: iCalendar export. (line 15) * C-c C-x C-k: Structure editing. (line 31) * C-c C-x C-w <1>: Built-in table editor. - (line 109) + (line 110) * C-c C-x C-w: Structure editing. (line 31) * C-c C-x C-y <1>: Built-in table editor. - (line 113) + (line 114) * C-c C-x C-y: Structure editing. (line 38) * C-c C-x h: HTML export. (line 10) * C-c C-x i: iCalendar export. (line 13) * C-c C-x M-w <1>: Built-in table editor. - (line 106) + (line 107) * C-c C-x M-w: Structure editing. (line 35) * C-c C-x t: HTML export. (line 14) -* C-c C-x v: Sparse trees. (line 37) +* C-c C-x v: Sparse trees. (line 39) * C-c C-y: Creating timestamps. (line 63) * C-c l: Managing links. (line 9) * C-c |: Built-in table editor. - (line 186) + (line 193) * C-c ~: table.el. (line 18) * C-u C-c .: Creating timestamps. (line 16) * C-u C-c =: Built-in table editor. - (line 140) + (line 141) +* C-u C-c C-l: Managing links. (line 36) * D: Agenda commands. (line 66) * d: Agenda commands. (line 63) * f: Agenda commands. (line 44) @@ -3708,46 +3799,46 @@ File: org, Node: Key Index, Prev: Index, Up: Top * L: Agenda commands. (line 32) * M: Agenda commands. (line 161) * M-: Built-in table editor. - (line 83) + (line 84) * M- <1>: Built-in table editor. - (line 73) + (line 74) * M-: Structure editing. (line 13) * M- <1>: Plain Lists. (line 42) * M-: Structure editing. (line 6) * M- <1>: Built-in table editor. - (line 73) + (line 74) * M-: Structure editing. (line 16) * M- <1>: Completion. (line 10) * M- <2>: Setting tags. (line 6) * M-: Per file keywords. (line 17) * M-: Built-in table editor. - (line 83) + (line 84) * M-S- <1>: Built-in table editor. - (line 90) + (line 91) * M-S- <2>: Plain Lists. (line 46) * M-S-: Structure editing. (line 28) * M-S- <1>: Creating timestamps. (line 97) * M-S- <2>: Built-in table editor. - (line 77) + (line 78) * M-S- <3>: Plain Lists. (line 52) * M-S-: Structure editing. (line 19) * M-S-: Structure editing. (line 10) * M-S- <1>: Creating timestamps. (line 94) * M-S- <2>: Built-in table editor. - (line 80) + (line 81) * M-S- <3>: Plain Lists. (line 52) * M-S-: Structure editing. (line 22) * M-S- <1>: Built-in table editor. - (line 87) + (line 88) * M-S- <2>: Plain Lists. (line 46) * M-S-: Structure editing. (line 25) * mouse-1 <1>: Agenda commands. (line 35) * mouse-1 <2>: Creating timestamps. (line 79) -* mouse-1: Managing links. (line 54) +* mouse-1: Managing links. (line 64) * mouse-2 <1>: Agenda commands. (line 35) -* mouse-2: Managing links. (line 54) +* mouse-2: Managing links. (line 64) * mouse-3 <1>: Agenda commands. (line 28) -* mouse-3: Managing links. (line 59) +* mouse-3: Managing links. (line 69) * n: Agenda commands. (line 19) * o: Agenda commands. (line 57) * P: Agenda commands. (line 115) @@ -3762,12 +3853,12 @@ File: org, Node: Key Index, Prev: Index, Up: Top * S- <1>: Agenda commands. (line 136) * S-: Creating timestamps. (line 50) * S-: Built-in table editor. - (line 171) + (line 172) * S- <1>: Agenda commands. (line 128) * S-: Creating timestamps. (line 50) * S- <1>: Built-in table editor. - (line 62) -* S-: Visibility cycling. (line 17) + (line 63) +* S-: Visibility cycling. (line 19) * S- <1>: Agenda commands. (line 118) * S- <2>: Creating timestamps. (line 55) * S-: Priorities. (line 25) @@ -3783,94 +3874,93 @@ Node: Top960 Node: Introduction7181 Node: Summary7495 Node: Installation and activation9607 -Node: Feedback11276 -Node: Document Structure12061 -Node: Outlines12827 -Node: Headlines13487 -Node: Visibility cycling14113 -Node: Motion15300 -Node: Structure editing16084 -Node: Archiving17827 -Node: Sparse trees18687 -Ref: Sparse trees-Footnote-120717 -Ref: Sparse trees-Footnote-220809 -Node: Plain Lists20923 -Ref: Plain Lists-Footnote-123679 -Node: Tables24036 -Node: Built-in table editor24584 -Node: Narrow columns32267 -Ref: Narrow columns-Footnote-134199 -Node: Table calculations34245 -Node: Formula syntax35421 -Ref: Formula syntax-Footnote-138354 -Node: Column formulas38653 -Node: Advanced features40415 -Node: Named-field formulas43669 -Node: Editing/debugging formulas44309 -Node: Appetizer46067 -Node: orgtbl-mode47169 -Node: table.el47659 -Node: Hyperlinks48636 -Node: Link format49270 -Ref: Link format-Footnote-150100 -Node: Internal links50403 -Node: Radio targets52291 -Node: CamelCase links53006 -Node: External links53579 -Ref: External links-Footnote-155750 -Node: Managing links55889 -Node: Search Options59290 -Ref: Search Options-Footnote-160603 -Node: Remember60684 -Ref: Remember-Footnote-164568 -Node: TODO items64692 -Node: TODO basics65615 -Node: Progress logging67128 -Node: TODO extensions67915 -Node: Workflow states68715 -Node: TODO types69583 -Ref: TODO types-Footnote-171241 -Node: Per file keywords71323 -Ref: Per file keywords-Footnote-172776 -Node: Priorities73004 -Node: Timestamps74213 -Node: Time stamps74534 -Node: Creating timestamps76549 -Node: Tags79678 -Node: Tag inheritance80414 -Node: Setting tags81353 -Node: Tag searches82315 -Node: Agenda Views83524 -Node: Agenda files85064 -Ref: Agenda files-Footnote-186026 -Ref: Agenda files-Footnote-286175 -Node: Agenda dispatcher86367 -Node: Weekly/Daily Agenda88498 -Node: Categories89633 -Node: Time-of-day specifications90279 -Node: Calendar/Diary integration92255 -Node: Sorting of agenda items93634 -Node: Global TODO list94466 -Node: Matching headline tags95881 -Node: Timeline96824 -Node: Agenda commands97699 -Node: Exporting102954 -Node: ASCII export103526 -Node: HTML export104362 -Node: HTML formatting105479 -Node: Export options107111 -Node: Comment lines109304 -Node: iCalendar export109774 -Node: Miscellaneous111569 -Node: Completion112196 -Node: Customization113192 -Node: Clean view113640 -Node: TTY keys116282 -Node: FAQ117883 -Node: Interaction122588 -Node: Bugs125427 -Node: Acknowledgments127736 -Node: Index130455 -Node: Key Index150878 +Node: Feedback11612 +Node: Document Structure12398 +Node: Outlines13164 +Node: Headlines13824 +Node: Visibility cycling14447 +Node: Motion15638 +Node: Structure editing16422 +Node: Archiving18165 +Node: Sparse trees19025 +Ref: Sparse trees-Footnote-121054 +Ref: Sparse trees-Footnote-221146 +Node: Plain Lists21260 +Ref: Plain Lists-Footnote-124016 +Node: Tables24373 +Node: Built-in table editor24921 +Node: Narrow columns32811 +Ref: Narrow columns-Footnote-134744 +Node: Table calculations34790 +Node: Formula syntax35966 +Ref: Formula syntax-Footnote-138900 +Node: Column formulas39199 +Node: Advanced features40961 +Node: Named-field formulas44216 +Node: Editing/debugging formulas44856 +Node: Appetizer46614 +Node: orgtbl-mode47716 +Node: table.el48207 +Node: Hyperlinks49184 +Node: Link format49818 +Node: Internal links51000 +Node: Radio targets52890 +Node: CamelCase links53605 +Node: External links54204 +Ref: External links-Footnote-156129 +Node: Managing links56268 +Node: Search Options60246 +Ref: Search Options-Footnote-161566 +Node: Remember61647 +Ref: Remember-Footnote-165528 +Node: TODO items65652 +Node: TODO basics66575 +Node: Progress logging68090 +Node: TODO extensions68876 +Node: Workflow states69676 +Node: TODO types70544 +Ref: TODO types-Footnote-172202 +Node: Per file keywords72284 +Ref: Per file keywords-Footnote-173737 +Node: Priorities73965 +Node: Timestamps75174 +Node: Time stamps75495 +Node: Creating timestamps77510 +Node: Tags80639 +Node: Tag inheritance81374 +Node: Setting tags82311 +Node: Tag searches83273 +Node: Agenda Views84482 +Node: Agenda files86021 +Ref: Agenda files-Footnote-186981 +Ref: Agenda files-Footnote-287130 +Node: Agenda dispatcher87322 +Node: Weekly/Daily Agenda89452 +Node: Categories90587 +Node: Time-of-day specifications91235 +Node: Calendar/Diary integration93211 +Node: Sorting of agenda items94588 +Node: Global TODO list95420 +Node: Matching headline tags96835 +Node: Timeline97778 +Node: Agenda commands98651 +Node: Exporting103906 +Node: ASCII export104478 +Node: HTML export105313 +Node: HTML formatting106429 +Node: Export options108061 +Node: Comment lines110252 +Node: iCalendar export110722 +Node: Miscellaneous112517 +Node: Completion113144 +Node: Customization114140 +Node: Clean view114588 +Node: TTY keys117228 +Node: FAQ118829 +Node: Interaction124335 +Node: Bugs127176 +Node: Acknowledgments129485 +Node: Index132415 +Node: Key Index152984  End Tag Table diff --git a/org.el b/org.el index dacfb5b88..cbddaf280 100644 --- a/org.el +++ b/org.el @@ -5,7 +5,7 @@ ;; Author: Carsten Dominik ;; Keywords: outlines, hypermedia, calendar, wp ;; Homepage: http://www.astro.uva.nl/~dominik/Tools/org/ -;; Version: 4.19a +;; Version: 4.19b ;; ;; This file is part of GNU Emacs. ;; @@ -87,6 +87,7 @@ ;; - If a link has a description, only the description is displayed ;; the link part is hidden. Use C-c C-l to edit the link part. ;; - TAGS are now bold, but in the same color as the headline. +;; - Bug fixes. ;; ;; Version 4.13 ;; - The list of agenda files can be maintainted in an external file. @@ -155,7 +156,9 @@ ;; ;;; Code: -(eval-when-compile (require 'cl) (require 'calendar)) +(eval-when-compile + (require 'cl) + (require 'calendar)) (require 'outline) (require 'time-date) (require 'easymenu) @@ -166,7 +169,7 @@ ;;; Customization variables -(defvar org-version "4.19a" +(defvar org-version "4.19b" "The version number of the file org.el.") (defun org-version () (interactive) @@ -176,6 +179,7 @@ ;; of outline.el. (defconst org-noutline-p (featurep 'noutline) "Are we using the new outline mode?") +(defconst org-xemacs-p (featurep 'xemacs)) (defconst org-format-transports-properties-p (let ((x "a")) (add-text-properties 0 1 '(test t) x) @@ -216,7 +220,7 @@ uninteresting. Also tables look terrible when wrapped." :type 'boolean) (defcustom org-startup-align-all-tables nil - "Non-nil means, allign all tables when visiting a file. + "Non-nil means, align all tables when visiting a file. This is useful when the column width in tables is forced with cookies in table fields. Such tables will look correct only after the first re-align." :group 'org-startup @@ -282,61 +286,24 @@ second element will be used when `org-CUA-compatible' is t.") (or (assq key org-disputed-keys) (error "Invalid Key %s in `org-key'" key)))) +(defcustom org-ellipsis nil + "The ellipsis to use in the Org-mode outline. +When nil, just use the standard three dots. When a string, use that instead, +and just in Org-mode (which will then use its own display table). +Changing this requires executing `M-x org-mode' in a buffer to become +effective." + :group 'org-startup + :type '(choice (const :tag "Default" nil) + (string :tag "String" :value "...#"))) + +(defvar org-display-table nil + "The display table for org-mode, in case `org-ellipsis' is non-nil.") + (defgroup org-keywords nil - "Options concerning TODO items in Org-mode." + "Keywords in Org-mode." :tag "Org Keywords" :group 'org) -(defcustom org-todo-keywords '("TODO" "DONE") - "List of TODO entry keywords. -\\By default, this is '(\"TODO\" \"DONE\"). The last entry in the list is -considered to mean that the entry is \"done\". All the other mean that -action is required, and will make the entry show up in todo lists, diaries -etc. -The command \\[org-todo] cycles an entry through these states, and an -additional state where no keyword is present. For details about this -cycling, see also the variable `org-todo-interpretation' -Changes become only effective after restarting Emacs." - :group 'org-keywords - :type '(repeat (string :tag "Keyword"))) - -(defcustom org-todo-interpretation 'sequence - "Controls how TODO keywords are interpreted. -\\Possible values are `sequence' and `type'. -This variable is only relevant if `org-todo-keywords' contains more than two -states. There are two ways how these keywords can be used: - -- As a sequence in the process of working on a TODO item, for example - (setq org-todo-keywords '(\"TODO\" \"STARTED\" \"VERIFY\" \"DONE\") - org-todo-interpretation 'sequence) - -- As different types of TODO items, for example - (setq org-todo-keywords '(\"URGENT\" \"RELAXED\" \"REMIND\" \"FOR_TOM\" \"DONE\") - org-todo-interpretation 'type) - -When the states are interpreted as a sequence, \\[org-todo] always cycles -to the next state, in order to walk through all different states. So with -\\[org-todo], you turn an empty entry into the state TODO. When you started -working on the item, you use \\[org-todo] again to switch it to \"STARTED\", -later to VERIFY and finally to DONE. - -When the states are interpreted as types, \\[org-todo] still cycles through -when it is called several times in direct succession, in order to initially -select the type. However, if not called immediately after a previous -\\[org-todo], it switches from each type directly to DONE. So with the -above example, you could use `\\[org-todo] \\[org-todo]' to label an entry -RELAXED. If you later return to this entry and press \\[org-todo] again, -RELAXED will not be changed REMIND, but directly to DONE. - -You can create a large number of types. To initially select a -type, it is then best to use \\[universal-argument] \\[org-todo] in order to specify the -type with completion. Of course, you can also type the keyword -directly into the buffer. M-TAB completes TODO keywords at the -beginning of a headline." - :group 'org-keywords - :type '(choice (const sequence) - (const type))) - (defcustom org-deadline-string "DEADLINE:" "String to mark deadline entries. A deadline is this string, followed by a time stamp. Should be a word, @@ -377,430 +344,22 @@ An entry can be toggled between QUOTE and normal with :group 'org-keywords :type 'string) -(defcustom org-after-todo-state-change-hook nil - "Hook which is run after the state of a TODO item was changed. -The new state (a string with a TODO keyword, or nil) is available in the -Lisp variable `state'." - :group 'org-keywords - :type 'hook) - -(defcustom org-default-priority ?B - "The default priority of TODO items. -This is the priority an item get if no explicit priority is given." - :group 'org-keywords - :type 'character) - -(defcustom org-lowest-priority ?C - "The lowest priority of TODO items. A character like ?A, ?B etc." - :group 'org-keywords - :type 'character) - -;; Variables for pre-computed regular expressions, all buffer local -(defvar org-todo-kwd-priority-p nil - "Do TODO items have priorities?") -(make-variable-buffer-local 'org-todo-kwd-priority-p) -(defvar org-todo-kwd-max-priority nil - "Maximum priority of TODO items.") -(make-variable-buffer-local 'org-todo-kwd-max-priority) -(defvar org-ds-keyword-length 12 - "Maximum length of the Deadline and SCHEDULED keywords.") -(make-variable-buffer-local 'org-ds-keyword-length) -(defvar org-done-string nil - "The last string in `org-todo-keywords', indicating an item is DONE.") -(make-variable-buffer-local 'org-done-string) -(defvar org-todo-regexp nil - "Matches any of the TODO state keywords.") -(make-variable-buffer-local 'org-todo-regexp) -(defvar org-not-done-regexp nil - "Matches any of the TODO state keywords except the last one.") -(make-variable-buffer-local 'org-not-done-regexp) -(defvar org-todo-line-regexp nil - "Matches a headline and puts TODO state into group 2 if present.") -(make-variable-buffer-local 'org-todo-line-regexp) -(defvar org-nl-done-regexp nil - "Matches newline followed by a headline with the DONE keyword.") -(make-variable-buffer-local 'org-nl-done-regexp) -(defvar org-looking-at-done-regexp nil - "Matches the DONE keyword a point.") -(make-variable-buffer-local 'org-looking-at-done-regexp) -(defvar org-deadline-regexp nil - "Matches the DEADLINE keyword.") -(make-variable-buffer-local 'org-deadline-regexp) -(defvar org-deadline-time-regexp nil - "Matches the DEADLINE keyword together with a time stamp.") -(make-variable-buffer-local 'org-deadline-time-regexp) -(defvar org-deadline-line-regexp nil - "Matches the DEADLINE keyword and the rest of the line.") -(make-variable-buffer-local 'org-deadline-line-regexp) -(defvar org-scheduled-regexp nil - "Matches the SCHEDULED keyword.") -(make-variable-buffer-local 'org-scheduled-regexp) -(defvar org-scheduled-time-regexp nil - "Matches the SCHEDULED keyword together with a time stamp.") -(make-variable-buffer-local 'org-scheduled-time-regexp) - -(defvar org-category nil - "Variable used by org files to set a category for agenda display. -Such files should use a file variable to set it, for example - - -*- mode: org; org-category: \"ELisp\" - -or contain a special line - -#+CATEGORY: ELisp - -If the file does not specify a category, then file's base name -is used instead.") -(make-variable-buffer-local 'org-category) - -(defgroup org-time nil - "Options concerning time stamps and deadlines in Org-mode." - :tag "Org Time" - :group 'org) - -(defconst org-time-stamp-formats '("<%Y-%m-%d %a>" . "<%Y-%m-%d %a %H:%M>") - "Formats for `format-time-string' which are used for time stamps. -It is not recommended to change this constant.") - -(defcustom org-time-stamp-rounding-minutes 0 - "Number of minutes to round time stamps to upon insertion. -When zero, insert the time unmodified. Useful rounding numbers -should be factors of 60, so for example 5, 10, 15. -When this is not zero, you can still force an exact time-stamp by using -a double prefix argument to a time-stamp command like `C-c .' or `C-c !'." - :group 'org-time - :type 'integer) - -(defcustom org-deadline-warning-days 30 - "No. of days before expiration during which a deadline becomes active. -This variable governs the display in the org file." - :group 'org-time - :type 'number) - -(defcustom org-popup-calendar-for-date-prompt t - "Non-nil means, pop up a calendar when prompting for a date. -In the calendar, the date can be selected with mouse-1. However, the -minibuffer will also be active, and you can simply enter the date as well. -When nil, only the minibuffer will be available." - :group 'org-time - :type 'boolean) - -(defcustom org-calendar-follow-timestamp-change t - "Non-nil means, make the calendar window follow timestamp changes. -When a timestamp is modified and the calendar window is visible, it will be -moved to the new date." - :group 'org-time - :type 'boolean) - -(defcustom org-log-done nil - "When set, insert a (non-active) time stamp when TODO entry is marked DONE. -When the state of an entry is changed from nothing to TODO, remove a previous -closing date." - :group 'org-time - :type 'boolean) - -(defgroup org-agenda nil - "Options concerning agenda display Org-mode." - :tag "Org Agenda" - :group 'org) - -(defcustom org-agenda-files nil - "The files to be used for agenda display. -Entries may be added to this list with \\[org-agenda-file-to-front] and removed with -\\[org-remove-file]. You can also use customize to edit the list. - -If the value of the variable is not a list but a single file name, then -the list of agenda files is actually stored in that file, one agenda file -per line" - :group 'org-agenda - :type '(choice - (repeat :tag "List of files" file) - (file :tag "Store list in a file\n" :value "~/.agenda_files"))) - -(defcustom org-agenda-custom-commands '(("w" todo "WAITING")) - "Custom commands for the agenda. -These commands will be offered on the splash screen displayed by the -agenda dispatcher \\[org-agenda]. Each entry is a list of 3 items: - -key The key (a single char as a string) to be associated with the command. -type The command type, any of the following symbols: - todo Entries with a specific TODO keyword, in all agenda files. - tags Tags match in all agenda files. - todo-tree Sparse tree of specific TODO keyword in *current* file. - tags-tree Sparse tree with all tags matches in *current* file. - occur-tree Occur sparse tree for current file. -match What to search for: - - a single keyword for TODO keyword searches - - a tags match expression for tags searches - - a regular expression for occur searches" - :group 'org-agenda - :type '(repeat - (list (string :tag "Key") - (choice :tag "Type" - (const :tag "Tags search in all agenda files" tags) - (const :tag "TODO keyword search in all agenda files" todo) - (const :tag "Tags sparse tree in current buffer" tags-tree) - (const :tag "TODO keyword tree in current buffer" todo-tree) - (const :tag "Occur tree in current buffer" occur-tree)) - (string :tag "Match")))) - -(defcustom org-select-timeline-window t - "Non-nil means, after creating a timeline, move cursor into Timeline window. -When nil, cursor will remain in the current window." - :group 'org-agenda - :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 - :type 'boolean) - -(defcustom org-fit-agenda-window t - "Non-nil means, change window size of agenda to fit content." - :group 'org-agenda - :type 'boolean) - -(defcustom org-agenda-show-all-dates t - "Non-nil means, `org-agenda' shows every day in the selected range. -When nil, only the days which actually have entries are shown." - :group 'org-agenda - :type 'boolean) - -;; FIXME: First day of month works only for current month because it would -;; require a variable ndays treatment. -(defcustom org-agenda-start-on-weekday 1 - "Non-nil means, start the overview always on the specified weekday. -0 Denotes Sunday, 1 denotes Monday etc. -When nil, always start on the current day." - :group 'org-agenda - :type '(choice (const :tag "Today" nil) - (const :tag "First day of month" t) - (number :tag "Weekday No."))) - -(defcustom org-agenda-ndays 7 - "Number of days to include in overview display." - :group 'org-agenda - :type 'number) - -(defcustom org-agenda-include-all-todo t - "Non-nil means, the agenda will always contain all TODO entries. -When nil, date-less entries will only be shown if `org-agenda' is called -with a prefix argument. -When non-nil, the TODO entries will be listed at the top of the agenda, before -the entries for specific days." - :group 'org-agenda - :type 'boolean) - -(defcustom org-agenda-include-diary nil - "If non-nil, include in the agenda entries from the Emacs Calendar's diary." - :group 'org-agenda - :type 'boolean) - -(defcustom org-calendar-to-agenda-key [?c] - "The key to be installed in `calendar-mode-map' for switching to the agenda. -The command `org-calendar-goto-agenda' will be bound to this key. The -default is the character `c' because then `c' can be used to switch back and -forth between agenda and calendar." - :group 'org-agenda - :type 'sexp) - -(defcustom org-agenda-sorting-strategy '(time-up category-keep priority-down) - "Sorting structure for the agenda items of a single day. -This is a list of symbols which will be used in sequence to determine -if an entry should be listed before another entry. The following -symbols are recognized: - -time-up Put entries with time-of-day indications first, early first -time-down Put entries with time-of-day indications first, late first -category-keep Keep the default order of categories, corresponding to the - sequence in `org-agenda-files'. -category-up Sort alphabetically by category, A-Z. -category-down Sort alphabetically by category, Z-A. -priority-up Sort numerically by priority, high priority last. -priority-down Sort numerically by priority, high priority first. - -The different possibilities will be tried in sequence, and testing stops -if one comparison returns a \"not-equal\". For example, the default - '(time-up category-keep priority-down) -means: Pull out all entries having a specified time of day and sort them, -in order to make a time schedule for the current day the first thing in the -agenda listing for the day. Of the entries without a time indication, keep -the grouped in categories, don't sort the categories, but keep them in -the sequence given in `org-agenda-files'. Within each category sort by -priority. - -Leaving out `category-keep' would mean that items will be sorted across -categories by priority." - :group 'org-agenda - :type '(repeat - (choice - (const time-up) - (const time-down) - (const category-keep) - (const category-up) - (const category-down) - (const priority-up) - (const priority-down)))) - -(defcustom org-agenda-prefix-format " %-12:c%?-12t% s" - "Format specification for the prefix of items in the agenda buffer. -This format works similar to a printf format, with the following meaning: - - %c the category of the item, \"Diary\" for entries from the diary, or - as given by the CATEGORY keyword or derived from the file name. - %T the first tag of the item. - %t the time-of-day specification if one applies to the entry, in the - format HH:MM - %s Scheduling/Deadline information, a short string - -All specifiers work basically like the standard `%s' of printf, but may -contain two additional characters: A question mark just after the `%' and -a whitespace/punctuation character just before the final letter. - -If the first character after `%' is a question mark, the entire field -will only be included if the corresponding value applies to the -current entry. This is useful for fields which should have fixed -width when present, but zero width when absent. For example, -\"%?-12t\" will result in a 12 character time field if a time of the -day is specified, but will completely disappear in entries which do -not contain a time. - -If there is punctuation or whitespace character just before the final -format letter, this character will be appended to the field value if -the value is not empty. For example, the format \"%-12:c\" leads to -\"Diary: \" if the category is \"Diary\". If the category were be -empty, no additional colon would be interted. - -The default value of this option is \" %-12:c%?-12t% s\", meaning: -- Indent the line with two space characters -- Give the category in a 12 chars wide field, padded with whitespace on - the right (because of `-'). Append a colon if there is a category - (because of `:'). -- If there is a time-of-day, put it into a 12 chars wide field. If no - time, don't put in an empty field, just skip it (because of '?'). -- Finally, put the scheduling information and append a whitespace. - -As another example, if you don't want the time-of-day of entries in -the prefix, you could use: - - (setq org-agenda-prefix-format \" %-11:c% s\") - -See also the variables `org-agenda-remove-times-when-in-prefix' and -`org-agenda-remove-tags-when-in-prefix'." - :type 'string - :group 'org-agenda) - -(defcustom org-timeline-prefix-format " % s" - "Like `org-agenda-prefix-format', but for the timeline of a single file." - :type 'string - :group 'org-agenda) - -(defvar org-prefix-format-compiled nil - "The compiled version of the most recently used prefix format. -Depending on which command was used last, this may be the compiled version -of `org-agenda-prefix-format' or `org-timeline-prefix-format'.") - -(defcustom org-agenda-use-time-grid t - "Non-nil means, show a time grid in the agenda schedule. -A time grid is a set of lines for specific times (like every two hours between -8:00 and 20:00). The items scheduled for a day at specific times are -sorted in between these lines. -For details about when the grid will be shown, and what it will look like, see -the variable `org-agenda-time-grid'." - :group 'org-agenda - :type 'boolean) - -(defcustom org-agenda-time-grid - '((daily today require-timed) - "----------------" - (800 1000 1200 1400 1600 1800 2000)) - - "The settings for time grid for agenda display. -This is a list of three items. The first item is again a list. It contains -symbols specifying conditions when the grid should be displayed: - - daily if the agenda shows a single day - weekly if the agenda shows an entire week - today show grid on current date, independent of daily/weekly display - require-timed show grid only if at least on item has a time specification - -The second item is a string which will be places behing the grid time. - -The third item is a list of integers, indicating the times that should have -a grid line." - :group 'org-agenda - :type - '(list - (set :greedy t :tag "Grid Display Options" - (const :tag "Show grid in single day agenda display" daily) - (const :tag "Show grid in weekly agenda display" weekly) - (const :tag "Always show grid for today" today) - (const :tag "Show grid only if any timed entries are present" - require-timed) - (const :tag "Skip grid times already present in an entry" - remove-match)) - (string :tag "Grid String") - (repeat :tag "Grid Times" (integer :tag "Time")))) - -(defcustom org-agenda-remove-times-when-in-prefix t - "Non-nil means, remove duplicate time specifications in agenda items. -When the format `org-agenda-prefix-format' contains a `%t' specifier, a -time-of-day specification in a headline or diary entry is extracted and -placed into the prefix. If this option is non-nil, the original specification -\(a timestamp or -range, or just a plain time(range) specification like -11:30-4pm) will be removed for agenda display. This makes the agenda less -cluttered. -The option can be t or nil. It may also be the symbol `beg', indicating -that the time should only be removed what it is located at the beginning of -the headline/diary entry." - :group 'org-agenda - :type '(choice - (const :tag "Always" t) - (const :tag "Never" nil) - (const :tag "When at beginning of entry" beg))) - -(defcustom org-sort-agenda-notime-is-late t - "Non-nil means, items without time are considered late. -This is only relevant for sorting. When t, items which have no explicit -time like 15:30 will be considered as 24:01, i.e. later than any items which -do have a time. When nil, the default time is before 0:00. You can use this -option to decide if the schedule for today should come before or after timeless -agenda entries." - :group 'org-agenda - :type 'boolean) - -(defcustom org-agenda-remove-tags-when-in-prefix nil - "Non-nil means, the tags from copy of headline in agenda. -When this is the symbol `prefix', only remove tags when -`org-agenda-prefix-format' contains a `%T' specifier." - :group 'org-agenda - :type '(choice - (const :tag "Always" t) - (const :tag "Never" nil) - (const :tag "When prefix format contains %T" prefix))) - (defgroup org-structure nil - "Options concerning structure editing in Org-mode." + "Options concerning the general structure of Org-mode files." :tag "Org Structure" :group 'org) -(defcustom org-cycle-include-plain-lists nil - "Non-nil means, include plain lists into visibility cycling. -This means that during cycling, plain list items will *temporarily* be -interpreted as outline headlines with a level given by 1000+i where i is the -indentation of the bullet. In all other operations, plain list items are -not seen as headlines. For example, you cannot assign a TODO keyword to -such an item." - :group 'org-structure - :type 'boolean) +(defgroup org-cycle nil + "Options concerning visibility cycling in Org-mode." + :tag "Org Cycle" + :group 'org-structure) (defcustom org-cycle-emulate-tab t "Where should `org-cycle' emulate TAB. nil Never white Only in completely white lines t Everywhere except in headlines" - :group 'org-structure + :group 'org-cycle :type '(choice (const :tag "Never" nil) (const :tag "Only in completely white lines" white) (const :tag "Everywhere except in headlines" t) @@ -813,38 +372,13 @@ the new state that was set by the most recent `org-cycle' command. The argument is a symbol. After a global state change, it can have the values `overview', `content', or `all'. After a local state change, it can have the values `folded', `children', or `subtree'." - :group 'org-structure + :group 'org-cycle :type 'hook) -(defcustom org-highlight-sparse-tree-matches t - "Non-nil means, highlight all matches that define a sparse tree. -The highlights will automatically disappear the next time the buffer is -changed by an edit command." - :group 'org-structure - :type 'boolean) - -(defcustom org-show-hierarchy-above t - "Non-nil means, show full hierarchy when showing a spot in the tree. -Turning this off makes sparse trees more compact, but also less clear." - :group 'org-structure - :type 'boolean) - -(defcustom org-show-following-heading t - "Non-nil means, show heading following match in `org-occur'. -When doing an `org-occur' it is useful to show the headline which -follows the match, even if they do not match the regexp. This makes it -easier to edit directly inside the sparse tree. However, if you use -`org-occur' mainly as an overview, the following headlines are -unnecessary clutter." - :group 'org-structure - :type 'boolean) - -(defcustom org-occur-hook '(org-first-headline-recenter) - "Hook that is run after `org-occur' has constructed a sparse tree. -This can be used to recenter the window to show as much of the structure -as possible." - :group 'org-structure - :type 'hook) +(defgroup org-edit-structure nil + "Options concerning structure editing in Org-mode." + :tag "Org Edit Structure" + :group 'org-structure) (defcustom org-odd-levels-only nil "Non-nil means, skip even levels and only use odd levels for the outline. @@ -853,7 +387,7 @@ promotion/demotion commands. It also influences how levels are handled by the exporters. Changing it requires restart of `font-lock-mode' to become effective for fontification also in regions already fontified." - :group 'org-structure + :group 'org-edit-structure :group 'org-font-lock :type 'boolean) @@ -863,16 +397,76 @@ When this is set and the *entire* text in an entry is indented, the indentation is increased by one space in a demotion command, and decreased by one in a promotion command. If any line in the entry body starts at column 0, indentation is not changed at all." - :group 'org-structure + :group 'org-edit-structure :type 'boolean) +;; FIXME: in the wrong group, but where would it fit???? +(defcustom org-enable-fixed-width-editor t + "Non-nil means, lines starting with \":\" are treated as fixed-width. +This currently only means, they are never auto-wrapped. +When nil, such lines will be treated like ordinary lines. +See also the QUOTE keyword." + :group 'org-edit-structure + :type 'boolean) + +(defgroup org-sparse-trees nil + "Options concerning sparse trees in Org-mode." + :tag "Org Sparse Trees" + :group 'org-structure) + +(defcustom org-highlight-sparse-tree-matches t + "Non-nil means, highlight all matches that define a sparse tree. +The highlights will automatically disappear the next time the buffer is +changed by an edit command." + :group 'org-sparse-trees + :type 'boolean) + +(defcustom org-show-hierarchy-above t + "Non-nil means, show full hierarchy when showing a spot in the tree. +Turning this off makes sparse trees more compact, but also less clear." + :group 'org-sparse-trees + :type 'boolean) + +(defcustom org-show-following-heading t + "Non-nil means, show heading following match in `org-occur'. +When doing an `org-occur' it is useful to show the headline which +follows the match, even if they do not match the regexp. This makes it +easier to edit directly inside the sparse tree. However, if you use +`org-occur' mainly as an overview, the following headlines are +unnecessary clutter." + :group 'org-sparse-trees + :type 'boolean) + +(defcustom org-occur-hook '(org-first-headline-recenter) + "Hook that is run after `org-occur' has constructed a sparse tree. +This can be used to recenter the window to show as much of the structure +as possible." + :group 'org-sparse-trees + :type 'hook) + +(defgroup org-plain-lists nil + "Options concerning plain lists in Org-mode." + :tag "Org Plain lists" + :group 'org-structure) + +(defcustom org-cycle-include-plain-lists nil + "Non-nil means, include plain lists into visibility cycling. +This means that during cycling, plain list items will *temporarily* be +interpreted as outline headlines with a level given by 1000+i where i is the +indentation of the bullet. In all other operations, plain list items are +not seen as headlines. For example, you cannot assign a TODO keyword to +such an item." + :group 'org-plain-lists + :type 'boolean) + + (defcustom org-plain-list-ordered-item-terminator t "The character that makes a line with leading number an ordered list item. Valid values are ?. and ?\). To get both terminators, use t. While ?. may look nicer, it creates the danger that a line with leading number may be incorrectly interpreted as an item. ?\) therefore is the safe choice." - :group 'org-structure + :group 'org-plain-lists :type '(choice (const :tag "dot like in \"2.\"" ?.) (const :tag "paren like in \"2)\"" ?\)) (const :tab "both" t))) @@ -882,22 +476,13 @@ the safe choice." Renumbering happens when the sequence have been changed with \\[org-shiftmetaup] or \\[org-shiftmetadown]. After other editing commands, use \\[org-ctrl-c-ctrl-c] to trigger renumbering." - :group 'org-structure + :group 'org-plain-lists :type 'boolean) -(defcustom org-enable-fixed-width-editor t - "Non-nil means, lines starting with \":\" are treated as fixed-width. -This currently only means, they are never auto-wrapped. -When nil, such lines will be treated like ordinary lines. -See also the QUOTE keyword." - :group 'org-structure - :type 'boolean) - - (defgroup org-archive nil "Options concerning archiving in Org-mode." :tag "Org Archive" - :group 'org) + :group 'org-structure) (defcustom org-archive-location "%s_archive::" "The location where subtrees should be archived. @@ -948,343 +533,6 @@ first line, so it is probably best to use this in combinations with :group 'org-archive :type 'boolean) -(defgroup org-tags nil - "Options concerning startup of Org-mode." - :tag "Org Tags" - :group 'org) - -(defcustom org-tags-column 48 - "The column to which tags should be indented in a headline. -If this number is positive, it specifies the column. If it is negative, -it means that the tags should be flushright to that column. For example, --79 works well for a normal 80 character screen." - :group 'org-tags - :type 'integer) - -(defcustom org-auto-align-tags t - "Non-nil means, realign tags after pro/demotion of TODO state change. -These operations change the length of a headline and therefore shift -the tags around. With this options turned on, after each such operation -the tags are again aligned to `org-tags-column'." - :group 'org-tags - :type 'boolean) - -(defcustom org-use-tag-inheritance t - "Non-nil means, tags in levels apply also for sublevels. -When nil, only the tags directly given in a specific line apply there. -If you turn off this option, you very likely want to turn on the -companion option `org-tags-match-list-sublevels'." - :group 'org-tags - :type 'boolean) - -(defcustom org-tags-match-list-sublevels nil - "Non-nil means list also sublevels of headlines matching tag search. -Because of tag inheritance (see variable `org-use-tag-inheritance'), -the sublevels of a headline matching a tag search often also match -the same search. Listing all of them can create very long lists. -Setting this variable to nil causes subtrees to be skipped. -This option is off by default, because inheritance in on. If you turn -inheritance off, you very likely want to turn this option on. - -As a special case, if the tag search is restricted to TODO items, the -value of this variable is ignored and sublevels are always checked, to -make sure all corresponding TODO items find their way into the list." - :group 'org-tags - :type 'boolean) - -(defvar org-tags-history nil - "History of minibuffer reads for tags.") -(defvar org-last-tags-completion-table nil - "The last used completion table for tags.") - -(defgroup org-link nil - "Options concerning links in Org-mode." - :tag "Org Link" - :group 'org) - -(defcustom org-descriptive-links t - "Non-nil means, hide link part and only show description of bracket links. -Bracket links are like [[link][descritpion]]. This variable sets the initial -state in new org-mode buffers. The setting can then be toggled on a -per-buffer basis from the Org->Hyperlinks menu." - :group 'org-link - :type 'boolean) - -(defcustom org-old-link-style nil - "Non-nil means don't use bracket-style links when inserting a link. -Deprecated, the bracket-style link system is better and should be used." - :group 'org-link - :type 'boolean) - -(defcustom org-tab-follows-link nil - "Non-nil means, on links TAB will follow the link. -Needs to be set before org.el is loaded." - :group 'org-link - :type 'boolean) - -(defcustom org-return-follows-link nil - "Non-nil means, on links RET will follow the link. -Needs to be set before org.el is loaded." - :group 'org-link - :type 'boolean) - -(defcustom org-mark-ring-length 4 - "Number of different positions to be recorded in the ring -Changing this requires a restart of Emacs to work correctly." - :group 'org-link - :type 'interger) - -(defcustom org-link-format "<%s>" - "Default format for external, URL-like linkes in the buffer. -This is a format string for printf, %s will be replaced by the link text. -If you want to make sure that your link is always properly terminated, -include angle brackets into this format, like \"<%s>\". Some people also -recommend an additional URL: prefix, so the format would be \"\"." - :group 'org-link - :type '(choice - (const :tag "\"%s\" (e.g. http://www.there.com)" "%s") - (const :tag "\"<%s>\" (e.g. )" "<%s>") - (const :tag "\"\" (e.g. )" "") - (string :tag "Other" :value "<%s>"))) - -;; FIXME: What is the meaning of this in the age of bracket links???? -(defcustom org-allow-space-in-links t - "Non-nil means, file names in links may contain space characters. -When nil, it becomes possible to put several links into a line. -Note that in tables, a link never extends accross fields, so in a table -it is always possible to put several links into a line. -Changing this variable requires a restart of Emacs of become effective." - :group 'org-link - :type 'boolean) - -(defcustom org-radio-targets t - "Non-nil means activate text matching a link target. -Radio targets are strings in triple angular brackets, like <<>>. -When this option is set, any occurrence of \"my target\" in normal text -becomes a link." - :group 'org-link - :type 'boolean) - -(defcustom org-activate-camels nil - "Non-nil means, treat words in CamelCase as in-file links. -Changing this requires restart of Emacs to become effective." - :group 'org-link - :type 'boolean) - -(defcustom org-context-in-file-links t - "Non-nil means, file links from `org-store-link' contain context. -A search string will be added to the file name with :: as separator and -used to find the context when the link is activated by the command -`org-open-at-point'. -Using a prefix arg to the command \\[org-store-link] (`org-store-link') -negates this setting for the duration of the command." - :group 'org-link - :type 'boolean) - -(defcustom org-file-link-context-use-camel-case nil - "Non-nil means, use CamelCase to store a search context in a file link. -When nil, the search string simply consists of the words of the string. -CamelCase is deprecated, and support for it may be dropped in the future." - :group 'org-link - :type 'boolean) - -(defcustom org-keep-stored-link-after-insertion nil - "Non-nil means, keep link in list for entire session. - -The command `org-store-link' adds a link pointing to the current -location to an internal list. These links accumulate during a session. -The command `org-insert-link' can be used to insert links into any -Org-mode file (offering completion for all stored links). When this -option is nil, every link which has been inserted once using \\[org-insert-link] -will be removed from the list, to make completing the unused links -more efficient." - :group 'org-link - :type 'boolean) - -(defcustom org-link-frame-setup - '((vm . vm-visit-folder-other-frame) - (gnus . gnus-other-frame) - (file . find-file-other-window)) - "Setup the frame configuration for following links. -When following a link with Emacs, it may often be useful to display -this link in another window or frame. This variable can be used to -set this up for the different types of links. -For VM, use any of - `vm-visit-folder' - `vm-visit-folder-other-frame' -For Gnus, use any of - `gnus' - `gnus-other-frame' -For FILE, use any of - `find-file' - `find-file-other-window' - `find-file-other-frame' -For the calendar, use the variable `calendar-setup'. -For BBDB, it is currently only possible to display the matches in -another window." - :group 'org-link - :type '(list - (cons (const vm) - (choice - (const vm-visit-folder) - (const vm-visit-folder-other-window) - (const vm-visit-folder-other-frame))) - (cons (const gnus) - (choice - (const gnus) - (const gnus-other-frame))) - (cons (const file) - (choice - (const find-file) - (const find-file-other-window) - (const find-file-other-frame))))) - -(defcustom org-usenet-links-prefer-google nil - "Non-nil means, `org-store-link' will create web links to Google groups. -When nil, Gnus will be used for such links. -Using a prefix arg to the command \\[org-store-link] (`org-store-link') -negates this setting for the duration of the command." - :group 'org-link - :type 'boolean) - -(defcustom org-open-non-existing-files nil - "Non-nil means, `org-open-file' will open non-existing file. -When nil, an error will be generated." - :group 'org-link - :type 'boolean) - -(defcustom org-confirm-shell-links t - "Non-nil means, ask for confirmation before executing shell links. -The default is true, to keep new users from shooting into their own foot." - :group 'org-link - :type 'boolean) - -(defconst org-file-apps-defaults-gnu - '((t . mailcap)) - "Default file applications on a UNIX or GNU/Linux system. -See `org-file-apps'.") - -(defconst org-file-apps-defaults-macosx - '((t . "open %s") - ("ps" . "gv %s") - ("ps.gz" . "gv %s") - ("eps" . "gv %s") - ("eps.gz" . "gv %s") - ("dvi" . "xdvi %s") - ("fig" . "xfig %s")) - "Default file applications on a MacOS X system. -The system \"open\" is known as a default, but we use X11 applications -for some files for which the OS does not have a good default. -See `org-file-apps'.") - -(defconst org-file-apps-defaults-windowsnt - '((t . (w32-shell-execute "open" file))) - "Default file applications on a Windows NT system. -The system \"open\" is used for most files. -See `org-file-apps'.") - -(defcustom org-file-apps - '( - ("txt" . emacs) - ("tex" . emacs) - ("ltx" . emacs) - ("org" . emacs) - ("el" . emacs) - ) - "External applications for opening `file:path' items in a document. -Org-mode uses system defaults for different file types, but -you can use this variable to set the application for a given file -extension. The entries in this list are cons cells with a file extension -and the corresponding command. Possible values for the command are: - `emacs' The file will be visited by the current Emacs process. - `default' Use the default application for this file type. - string A command to be executed by a shell; %s will be replaced - by the path to the file. - sexp A Lisp form which will be evaluated. The file path will - be available in the Lisp variable `file'. -For more examples, see the system specific constants -`org-file-apps-defaults-macosx' -`org-file-apps-defaults-windowsnt' -`org-file-apps-defaults-gnu'." - :group 'org-link - :type '(repeat - (cons (choice :value "" - (string :tag "Extension") - (const :tag "Default for unrecognized files" t) - (const :tag "Links to a directory" directory)) - (choice :value "" - (const :tag "Visit with Emacs" emacs) - (const :tag "Use system default" default) - (string :tag "Command") - (sexp :tag "Lisp form"))))) - -(defcustom org-mhe-search-all-folders nil - "Non-nil means, that the search for the mh-message will be extended to -all folders if the message cannot be found in the folder given in the link. -Searching all folders is very effective with one of the search engines -supported by MH-E, but will be slow with pick." - :group 'org-link - :type 'boolean) - -(defgroup org-remember nil - "Options concerning interaction with remember.el." - :tag "Org Remember" - :group 'org) - -(defcustom org-directory "~/org" - "Directory with org files. -This directory will be used as default to prompt for org files. -Used by the hooks for remember.el." - :group 'org-remember - :type 'directory) - -(defcustom org-default-notes-file "~/.notes" - "Default target for storing notes. -Used by the hooks for remember.el. This can be a string, or nil to mean -the value of `remember-data-file'." - :group 'org-remember - :type '(choice - (const :tag "Default from remember-data-file" nil) - file)) - -(defcustom org-remember-templates nil - "Templates for the creation of remember buffers. -When nil, just let remember make the buffer. -When not nil, this is a list of 3-element lists. In each entry, the first -element is a character, a unique key to select this template. -The second element is the template. The third element is optional and can -specify a destination file for remember items created with this template. -The default file is given by `org-default-notes-file'. - -The template specifies the structure of the remember buffer. It should have -a first line starting with a star, to act as the org-mode headline. -Furthermore, the following %-escapes will be replaced with content: - %t time stamp, date only - %T time stamp with date and time - %u inactive time stamp, date only - %U inactive time stamp with date and time - %n user name - %a annotation, normally the link created with org-store-link - %i initial content, the region when remember is called with C-u. - If %i is indented, the entire inserted text will be indented as well. - %? This will be removed, and the cursor placed at this position." - :group 'org-remember - :type '(repeat :tag "enabled" - (list :value (?a "\n" nil) - (character :tag "Selection Key") - (string :tag "Template") - (file :tag "Destination file (optional)")))) - -(defcustom org-reverse-note-order nil - "Non-nil means, store new notes at the beginning of a file or entry. -When nil, new notes will be filed to the end of a file or entry." - :group 'org-remember - :type '(choice - (const :tag "Reverse always" t) - (const :tag "Reverse never" nil) - (repeat :tag "By file name regexp" - (cons regexp boolean)))) - (defgroup org-table nil "Options concerning tables in Org-mode." :tag "Org Table" @@ -1321,46 +569,39 @@ See also the variable `org-table-auto-blank-field'." (const :tag "on" t) (const :tag "on, optimized" optimized))) -;; FIXME: We could have a third option which makes it jump only over the first -;; hline in a table. -(defcustom org-table-tab-jumps-over-hlines t - "Non-nil means, tab in the last column of a table with jump over a hline. -If a horizontal separator line is following the current line, -`org-table-next-field' can either create a new row before that line, or jump -over the line. When this option is nil, a new line will be created before -this line." +(defcustom orgtbl-optimized (eq org-enable-table-editor 'optimized) + "Non-nil means, use the optimized table editor version for `orgtbl-mode'. +In the optimized version, the table editor takes over all simple keys that +normally just insert a character. In tables, the characters are inserted +in a way to minimize disturbing the table structure (i.e. in overwrite mode +for empty fields). Outside tables, the correct binding of the keys is +restored. + +The default for this option is t if the optimized version is also used in +Org-mode. See the variable `org-enable-table-editor' for details. Changing +this variable requires a restart of Emacs to become effective." :group 'org-table :type 'boolean) -(defcustom org-table-auto-blank-field t - "Non-nil means, automatically blank table field when starting to type into it. -This only happens when typing immediately after a field motion -command (TAB, S-TAB or RET). -Only relevant when `org-enable-table-editor' is equal to `optimized'." - :group 'org-table - :type 'boolean) +(defgroup org-table-settings nil + "Settings for tables in Org-mode." + :tag "Org Table Settings" + :group 'org-table) (defcustom org-table-default-size "5x2" "The default size for newly created tables, Columns x Rows." - :group 'org-table + :group 'org-table-settings :type 'string) -(defcustom org-table-automatic-realign t - "Non-nil means, automatically re-align table when pressing TAB or RETURN. -When nil, aligning is only done with \\[org-table-align], or after column -removal/insertion." - :group 'org-table - :type 'boolean) - (defcustom org-table-spaces-around-separators '(1 . 1) "The number of spaces to be placed before and after separators." - :group 'org-table + :group 'org-table-settings :type '(cons (number :tag "Before \"|\"") (number :tag " After \"|\""))) (defcustom org-table-spaces-around-invisible-separators '(1 . 2) "The number of spaces to be placed before and after separators. This option applies when the column separators have been made invisible." - :group 'org-table + :group 'org-table-settings :type '(cons (number :tag "Before \"|\"") (number :tag " After \"|\""))) (defcustom org-table-number-regexp "^[<>]?[-+^.0-9]*[0-9][-+^.0-9eEdDx()%]*$" @@ -1375,7 +616,7 @@ number: 12 12.2 2.4e-08 2x10^12 4.034+-0.02 2.7(10) >3.5 Other options offered by the customize interface are more restrictive." - :group 'org-table + :group 'org-table-settings :type '(choice (const :tag "Positive Integers" "^[0-9]+$") @@ -1396,34 +637,54 @@ Other options offered by the customize interface are more restrictive." In a column all non-white fields are considered. If at least this fraction of fields is matched by `org-table-number-fraction', alignment to the right border applies." - :group 'org-table + :group 'org-table-settings :type 'number) -(defcustom org-export-highlight-first-table-line t - "Non-nil means, highlight the first table line. -In HTML export, this means use instead of . -In tables created with table.el, this applies to the first table line. -In Org-mode tables, all lines before the first horizontal separator -line will be formatted with tags." - :group 'org-table +(defgroup org-table-editing nil + "Bahavior of tables during editing in Org-mode." + :tag "Org Table Editing" + :group 'org-table) + +(defcustom org-table-automatic-realign t + "Non-nil means, automatically re-align table when pressing TAB or RETURN. +When nil, aligning is only done with \\[org-table-align], or after column +removal/insertion." + :group 'org-table-editing + :type 'boolean) + +(defcustom org-table-limit-column-width t + "Non-nil means, allow to limit the width of table columns with fields." + :group 'org-table-editing + :type 'boolean) + +(defcustom org-table-auto-blank-field t + "Non-nil means, automatically blank table field when starting to type into it. +This only happens when typing immediately after a field motion +command (TAB, S-TAB or RET). +Only relevant when `org-enable-table-editor' is equal to `optimized'." + :group 'org-table-editing + :type 'boolean) + +(defcustom org-table-tab-jumps-over-hlines t + "Non-nil means, tab in the last column of a table with jump over a hline. +If a horizontal separator line is following the current line, +`org-table-next-field' can either create a new row before that line, or jump +over the line. When this option is nil, a new line will be created before +this line." + :group 'org-table-editing :type 'boolean) (defcustom org-table-tab-recognizes-table.el t "Non-nil means, TAB will automatically notice a table.el table. When it sees such a table, it moves point into it and - if necessary - calls `table-recognize-table'." - :group 'org-table - :type 'boolean) - -(defcustom org-table-limit-column-width t - "Non-nil means, allow to limit the width of table columns with fields." - :group 'org-table + :group 'org-table-editing :type 'boolean) (defgroup org-table-calculation nil "Options concerning tables in Org-mode." :tag "Org Table Calculation" - :group 'org) + :group 'org-table) (defcustom org-table-copy-increment t "Non-nil means, increment when copying current field with \\[org-table-copy-down]." @@ -1494,11 +755,809 @@ Automatically means, when TAB or RET or C-c C-c are pressed in the line." :group 'org-table-calculation :type 'boolean) +(defgroup org-link nil + "Options concerning links in Org-mode." + :tag "Org Link" + :group 'org) + +(defcustom org-descriptive-links t + "Non-nil means, hide link part and only show description of bracket links. +Bracket links are like [[link][descritpion]]. This variable sets the initial +state in new org-mode buffers. The setting can then be toggled on a +per-buffer basis from the Org->Hyperlinks menu." + :group 'org-link + :type 'boolean) + +(defcustom org-link-style 'bracket + "The style of links to be inserted with \\[org-insert-link]. +Possible values are: +bracket [[link][description]]. This is recommended +plain Description \\n link. The old way, no longer recommended." + :group 'org-link + :type '(choice + (const :tag "Bracket (recommended)" bracket) + (const :tag "Plain (no longer recommended)" plain))) + +(defcustom org-link-format "%s" + "Default format for external, URL-like linkes in the buffer. +This is a format string for printf, %s will be replaced by the link text. +The recommended value is just \"%s\", since links will be protected by +enclosing them in double brackets. If you prefer plain links (see variable +`org-link-style'), \"<%s>\" is useful. Some people also recommend an +additional URL: prefix, so the format would be \"\"." + :group 'org-link + :type '(choice + (const :tag "\"%s\" (e.g. http://www.there.com)" "%s") + (const :tag "\"<%s>\" (e.g. )" "<%s>") + (const :tag "\"\" (e.g. )" "") + (string :tag "Other" :value "<%s>"))) + +(defvaralias 'org-allow-space-in-links 'org-allow-space-in-plain-links) + +(defcustom org-allow-space-in-plain-links nil + "Non-nil means, space characters may be part of a plain text link. +Space characters are no problem in links enclosed by double square brackets. +But in plain text, if space is allowed, org-mode does not know where to +terminate the link and reads until the end of the line. +This variable exists only to force compatibility with old org-mode files. +I discourage setting this to t, and support for this may not be available +in the future. +Changing this requires a restart of Emacs to become effective." + :group 'org-link + :type 'boolean) + +(defcustom org-radio-targets t + "Non-nil means activate text matching a link target. +Radio targets are strings in triple angular brackets, like <<>>. +When this option is set, any occurrence of \"my target\" in normal text +becomes a link." + :group 'org-link + :type 'boolean) + +(defcustom org-activate-camels nil + "Non-nil means, treat words in CamelCase as in-file links. +Changing this requires restart of Emacs to become effective." + :group 'org-link + :type 'boolean) + +(defgroup org-link-store nil + "Options concerning storing links in Org-mode" + :tag "Org Store Link" + :group 'org-link) + +(defcustom org-context-in-file-links t + "Non-nil means, file links from `org-store-link' contain context. +A search string will be added to the file name with :: as separator and +used to find the context when the link is activated by the command +`org-open-at-point'. +Using a prefix arg to the command \\[org-store-link] (`org-store-link') +negates this setting for the duration of the command." + :group 'org-link-store + :type 'boolean) + +(defcustom org-file-link-context-use-camel-case nil + "Non-nil means, use CamelCase to store a search context in a file link. +When nil, the search string simply consists of the words of the string. +CamelCase is deprecated, and support for it may be dropped in the future." + :group 'org-link-store + :type 'boolean) + +(defcustom org-keep-stored-link-after-insertion nil + "Non-nil means, keep link in list for entire session. + +The command `org-store-link' adds a link pointing to the current +location to an internal list. These links accumulate during a session. +The command `org-insert-link' can be used to insert links into any +Org-mode file (offering completion for all stored links). When this +option is nil, every link which has been inserted once using \\[org-insert-link] +will be removed from the list, to make completing the unused links +more efficient." + :group 'org-link-store + :type 'boolean) + +(defcustom org-usenet-links-prefer-google nil + "Non-nil means, `org-store-link' will create web links to Google groups. +When nil, Gnus will be used for such links. +Using a prefix arg to the command \\[org-store-link] (`org-store-link') +negates this setting for the duration of the command." + :group 'org-link-store + :type 'boolean) + +(defgroup org-link-follow nil + "Options concerning following links in Org-mode" + :tag "Org Follow Link" + :group 'org-link) + +(defcustom org-tab-follows-link nil + "Non-nil means, on links TAB will follow the link. +Needs to be set before org.el is loaded." + :group 'org-link-follow + :type 'boolean) + +(defcustom org-return-follows-link nil + "Non-nil means, on links RET will follow the link. +Needs to be set before org.el is loaded." + :group 'org-link-follow + :type 'boolean) + +(defcustom org-mark-ring-length 4 + "Number of different positions to be recorded in the ring +Changing this requires a restart of Emacs to work correctly." + :group 'org-link-follow + :type 'interger) + +(defcustom org-link-frame-setup + '((vm . vm-visit-folder-other-frame) + (gnus . gnus-other-frame) + (file . find-file-other-window)) + "Setup the frame configuration for following links. +When following a link with Emacs, it may often be useful to display +this link in another window or frame. This variable can be used to +set this up for the different types of links. +For VM, use any of + `vm-visit-folder' + `vm-visit-folder-other-frame' +For Gnus, use any of + `gnus' + `gnus-other-frame' +For FILE, use any of + `find-file' + `find-file-other-window' + `find-file-other-frame' +For the calendar, use the variable `calendar-setup'. +For BBDB, it is currently only possible to display the matches in +another window." + :group 'org-link-follow + :type '(list + (cons (const vm) + (choice + (const vm-visit-folder) + (const vm-visit-folder-other-window) + (const vm-visit-folder-other-frame))) + (cons (const gnus) + (choice + (const gnus) + (const gnus-other-frame))) + (cons (const file) + (choice + (const find-file) + (const find-file-other-window) + (const find-file-other-frame))))) + +(defcustom org-open-non-existing-files nil + "Non-nil means, `org-open-file' will open non-existing file. +When nil, an error will be generated." + :group 'org-link-follow + :type 'boolean) + +(defcustom org-confirm-shell-links t + "Non-nil means, ask for confirmation before executing shell links. +The default is true, to keep new users from shooting into their own foot." + :group 'org-link-follow + :type 'boolean) + +(defconst org-file-apps-defaults-gnu + '((t . mailcap)) + "Default file applications on a UNIX or GNU/Linux system. +See `org-file-apps'.") + +(defconst org-file-apps-defaults-macosx + '((t . "open %s") + ("ps" . "gv %s") + ("ps.gz" . "gv %s") + ("eps" . "gv %s") + ("eps.gz" . "gv %s") + ("dvi" . "xdvi %s") + ("fig" . "xfig %s")) + "Default file applications on a MacOS X system. +The system \"open\" is known as a default, but we use X11 applications +for some files for which the OS does not have a good default. +See `org-file-apps'.") + +(defconst org-file-apps-defaults-windowsnt + '((t . (w32-shell-execute "open" file))) + "Default file applications on a Windows NT system. +The system \"open\" is used for most files. +See `org-file-apps'.") + +(defcustom org-file-apps + '( + ("txt" . emacs) + ("tex" . emacs) + ("ltx" . emacs) + ("org" . emacs) + ("el" . emacs) + ) + "External applications for opening `file:path' items in a document. +Org-mode uses system defaults for different file types, but +you can use this variable to set the application for a given file +extension. The entries in this list are cons cells with a file extension +and the corresponding command. Possible values for the command are: + `emacs' The file will be visited by the current Emacs process. + `default' Use the default application for this file type. + string A command to be executed by a shell; %s will be replaced + by the path to the file. + sexp A Lisp form which will be evaluated. The file path will + be available in the Lisp variable `file'. +For more examples, see the system specific constants +`org-file-apps-defaults-macosx' +`org-file-apps-defaults-windowsnt' +`org-file-apps-defaults-gnu'." + :group 'org-link-follow + :type '(repeat + (cons (choice :value "" + (string :tag "Extension") + (const :tag "Default for unrecognized files" t) + (const :tag "Links to a directory" directory)) + (choice :value "" + (const :tag "Visit with Emacs" emacs) + (const :tag "Use system default" default) + (string :tag "Command") + (sexp :tag "Lisp form"))))) + +(defcustom org-mhe-search-all-folders nil + "Non-nil means, that the search for the mh-message will be extended to +all folders if the message cannot be found in the folder given in the link. +Searching all folders is very effective with one of the search engines +supported by MH-E, but will be slow with pick." + :group 'org-link-follow + :type 'boolean) + +(defgroup org-remember nil + "Options concerning interaction with remember.el." + :tag "Org Remember" + :group 'org) + +(defcustom org-directory "~/org" + "Directory with org files. +This directory will be used as default to prompt for org files. +Used by the hooks for remember.el." + :group 'org-remember + :type 'directory) + +(defcustom org-default-notes-file "~/.notes" + "Default target for storing notes. +Used by the hooks for remember.el. This can be a string, or nil to mean +the value of `remember-data-file'." + :group 'org-remember + :type '(choice + (const :tag "Default from remember-data-file" nil) + file)) + +(defcustom org-remember-templates nil + "Templates for the creation of remember buffers. +When nil, just let remember make the buffer. +When not nil, this is a list of 3-element lists. In each entry, the first +element is a character, a unique key to select this template. +The second element is the template. The third element is optional and can +specify a destination file for remember items created with this template. +The default file is given by `org-default-notes-file'. + +The template specifies the structure of the remember buffer. It should have +a first line starting with a star, to act as the org-mode headline. +Furthermore, the following %-escapes will be replaced with content: + %t time stamp, date only + %T time stamp with date and time + %u inactive time stamp, date only + %U inactive time stamp with date and time + %n user name + %a annotation, normally the link created with org-store-link + %i initial content, the region when remember is called with C-u. + If %i is indented, the entire inserted text will be indented as well. + %? This will be removed, and the cursor placed at this position." + :group 'org-remember + :type '(repeat :tag "enabled" + (list :value (?a "\n" nil) + (character :tag "Selection Key") + (string :tag "Template") + (file :tag "Destination file (optional)")))) + +(defcustom org-reverse-note-order nil + "Non-nil means, store new notes at the beginning of a file or entry. +When nil, new notes will be filed to the end of a file or entry." + :group 'org-remember + :type '(choice + (const :tag "Reverse always" t) + (const :tag "Reverse never" nil) + (repeat :tag "By file name regexp" + (cons regexp boolean)))) + +(defgroup org-todo nil + "Options concerning TODO items in Org-mode." + :tag "Org TODO" + :group 'org) + +(defcustom org-todo-keywords '("TODO" "DONE") + "List of TODO entry keywords. +\\By default, this is '(\"TODO\" \"DONE\"). The last entry in the list is +considered to mean that the entry is \"done\". All the other mean that +action is required, and will make the entry show up in todo lists, diaries +etc. +The command \\[org-todo] cycles an entry through these states, and an +additional state where no keyword is present. For details about this +cycling, see also the variable `org-todo-interpretation' +Changes become only effective after restarting Emacs." + :group 'org-todo + :group 'org-keywords + :type '(repeat (string :tag "Keyword"))) + +(defcustom org-todo-interpretation 'sequence + "Controls how TODO keywords are interpreted. +\\Possible values are `sequence' and `type'. +This variable is only relevant if `org-todo-keywords' contains more than two +states. There are two ways how these keywords can be used: + +- As a sequence in the process of working on a TODO item, for example + (setq org-todo-keywords '(\"TODO\" \"STARTED\" \"VERIFY\" \"DONE\") + org-todo-interpretation 'sequence) + +- As different types of TODO items, for example + (setq org-todo-keywords '(\"URGENT\" \"RELAXED\" \"REMIND\" \"FOR_TOM\" \"DONE\") + org-todo-interpretation 'type) + +When the states are interpreted as a sequence, \\[org-todo] always cycles +to the next state, in order to walk through all different states. So with +\\[org-todo], you turn an empty entry into the state TODO. When you started +working on the item, you use \\[org-todo] again to switch it to \"STARTED\", +later to VERIFY and finally to DONE. + +When the states are interpreted as types, \\[org-todo] still cycles through +when it is called several times in direct succession, in order to initially +select the type. However, if not called immediately after a previous +\\[org-todo], it switches from each type directly to DONE. So with the +above example, you could use `\\[org-todo] \\[org-todo]' to label an entry +RELAXED. If you later return to this entry and press \\[org-todo] again, +RELAXED will not be changed REMIND, but directly to DONE. + +You can create a large number of types. To initially select a +type, it is then best to use \\[universal-argument] \\[org-todo] in order to specify the +type with completion. Of course, you can also type the keyword +directly into the buffer. M-TAB completes TODO keywords at the +beginning of a headline." + :group 'org-todo + :group 'org-keywords + :type '(choice (const sequence) + (const type))) + +(defcustom org-after-todo-state-change-hook nil + "Hook which is run after the state of a TODO item was changed. +The new state (a string with a TODO keyword, or nil) is available in the +Lisp variable `state'." + :group 'org-todo + :type 'hook) + +(defcustom org-log-done nil + "When set, insert a (non-active) time stamp when TODO entry is marked DONE. +When the state of an entry is changed from nothing to TODO, remove a previous +closing date." + :group 'org-todo + :type 'boolean) + +;; FIXME: Correct to put this into the TODO group??? +(defgroup org-priorities nil + "Keywords in Org-mode." + :tag "Org Priorities" + :group 'org-todo) + +(defcustom org-default-priority ?B + "The default priority of TODO items. +This is the priority an item get if no explicit priority is given." + :group 'org-priorities + :type 'character) + +(defcustom org-lowest-priority ?C + "The lowest priority of TODO items. A character like ?A, ?B etc." + :group 'org-priorities + :type 'character) + +;; FIXME: move to agenda????? +(defvar org-category nil + "Variable used by org files to set a category for agenda display. +Such files should use a file variable to set it, for example + + -*- mode: org; org-category: \"ELisp\" + +or contain a special line + +#+CATEGORY: ELisp + +If the file does not specify a category, then file's base name +is used instead.") +(make-variable-buffer-local 'org-category) + +(defgroup org-time nil + "Options concerning time stamps and deadlines in Org-mode." + :tag "Org Time" + :group 'org) + +(defconst org-time-stamp-formats '("<%Y-%m-%d %a>" . "<%Y-%m-%d %a %H:%M>") + "Formats for `format-time-string' which are used for time stamps. +It is not recommended to change this constant.") + +(defcustom org-time-stamp-rounding-minutes 0 + "Number of minutes to round time stamps to upon insertion. +When zero, insert the time unmodified. Useful rounding numbers +should be factors of 60, so for example 5, 10, 15. +When this is not zero, you can still force an exact time-stamp by using +a double prefix argument to a time-stamp command like `C-c .' or `C-c !'." + :group 'org-time + :type 'integer) + +(defcustom org-deadline-warning-days 30 + "No. of days before expiration during which a deadline becomes active. +This variable governs the display in the org file." + :group 'org-time + :type 'number) + +(defcustom org-popup-calendar-for-date-prompt t + "Non-nil means, pop up a calendar when prompting for a date. +In the calendar, the date can be selected with mouse-1. However, the +minibuffer will also be active, and you can simply enter the date as well. +When nil, only the minibuffer will be available." + :group 'org-time + :type 'boolean) + +(defcustom org-calendar-follow-timestamp-change t + "Non-nil means, make the calendar window follow timestamp changes. +When a timestamp is modified and the calendar window is visible, it will be +moved to the new date." + :group 'org-time + :type 'boolean) + +(defgroup org-tags nil + "Options concerning startup of Org-mode." + :tag "Org Tags" + :group 'org) + +(defcustom org-tags-column 48 + "The column to which tags should be indented in a headline. +If this number is positive, it specifies the column. If it is negative, +it means that the tags should be flushright to that column. For example, +-79 works well for a normal 80 character screen." + :group 'org-tags + :type 'integer) + +(defcustom org-auto-align-tags t + "Non-nil means, realign tags after pro/demotion of TODO state change. +These operations change the length of a headline and therefore shift +the tags around. With this options turned on, after each such operation +the tags are again aligned to `org-tags-column'." + :group 'org-tags + :type 'boolean) + +(defcustom org-use-tag-inheritance t + "Non-nil means, tags in levels apply also for sublevels. +When nil, only the tags directly given in a specific line apply there. +If you turn off this option, you very likely want to turn on the +companion option `org-tags-match-list-sublevels'." + :group 'org-tags + :type 'boolean) + +(defcustom org-tags-match-list-sublevels nil + "Non-nil means list also sublevels of headlines matching tag search. +Because of tag inheritance (see variable `org-use-tag-inheritance'), +the sublevels of a headline matching a tag search often also match +the same search. Listing all of them can create very long lists. +Setting this variable to nil causes subtrees to be skipped. +This option is off by default, because inheritance in on. If you turn +inheritance off, you very likely want to turn this option on. + +As a special case, if the tag search is restricted to TODO items, the +value of this variable is ignored and sublevels are always checked, to +make sure all corresponding TODO items find their way into the list." + :group 'org-tags + :type 'boolean) + +(defvar org-tags-history nil + "History of minibuffer reads for tags.") +(defvar org-last-tags-completion-table nil + "The last used completion table for tags.") + +(defgroup org-agenda nil + "Options concerning agenda display Org-mode." + :tag "Org Agenda" + :group 'org) + +(defcustom org-agenda-files nil + "The files to be used for agenda display. +Entries may be added to this list with \\[org-agenda-file-to-front] and removed with +\\[org-remove-file]. You can also use customize to edit the list. + +If the value of the variable is not a list but a single file name, then +the list of agenda files is actually stored in that file, one agenda file +per line" + :group 'org-agenda + :type '(choice + (repeat :tag "List of files" file) + (file :tag "Store list in a file\n" :value "~/.agenda_files"))) + +(defcustom org-agenda-custom-commands '(("w" todo "WAITING")) + "Custom commands for the agenda. +These commands will be offered on the splash screen displayed by the +agenda dispatcher \\[org-agenda]. Each entry is a list of 3 items: + +key The key (a single char as a string) to be associated with the command. +type The command type, any of the following symbols: + todo Entries with a specific TODO keyword, in all agenda files. + tags Tags match in all agenda files. + todo-tree Sparse tree of specific TODO keyword in *current* file. + tags-tree Sparse tree with all tags matches in *current* file. + occur-tree Occur sparse tree for current file. +match What to search for: + - a single keyword for TODO keyword searches + - a tags match expression for tags searches + - a regular expression for occur searches" + :group 'org-agenda + :type '(repeat + (list (string :tag "Key") + (choice :tag "Type" + (const :tag "Tags search in all agenda files" tags) + (const :tag "TODO keyword search in all agenda files" todo) + (const :tag "Tags sparse tree in current buffer" tags-tree) + (const :tag "TODO keyword tree in current buffer" todo-tree) + (const :tag "Occur tree in current buffer" occur-tree)) + (string :tag "Match")))) + +(defcustom org-agenda-include-all-todo t + "Non-nil means, the agenda will always contain all TODO entries. +When nil, date-less entries will only be shown if `org-agenda' is called +with a prefix argument. +When non-nil, the TODO entries will be listed at the top of the agenda, before +the entries for specific days." + :group 'org-agenda + :type 'boolean) + +(defcustom org-agenda-include-diary nil + "If non-nil, include in the agenda entries from the Emacs Calendar's diary." + :group 'org-agenda + :type 'boolean) + +(defcustom org-calendar-to-agenda-key [?c] + "The key to be installed in `calendar-mode-map' for switching to the agenda. +The command `org-calendar-goto-agenda' will be bound to this key. The +default is the character `c' because then `c' can be used to switch back and +forth between agenda and calendar." + :group 'org-agenda + :type 'sexp) + +(defgroup org-agenda-window-setup nil + "Options concerning setting up the Agenda window in Org Mode." + :tag "Org Agenda Window Setup" + :group 'org-agenda) + +(defcustom org-select-timeline-window t + "Non-nil means, after creating a timeline, move cursor into Timeline window. +When nil, cursor will remain in the current window." + :group 'org-agenda-window-setup + :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-window-setup + :type 'boolean) + +(defcustom org-fit-agenda-window t + "Non-nil means, change window size of agenda to fit content." + :group 'org-agenda-window-setup + :type 'boolean) + +(defgroup org-agenda-display nil + "Options concerning what to display initially in Agenda." + :tag "Org Agenda Display" + :group 'org-agenda) + +(defcustom org-agenda-show-all-dates t + "Non-nil means, `org-agenda' shows every day in the selected range. +When nil, only the days which actually have entries are shown." + :group 'org-agenda-display + :type 'boolean) + +(defcustom org-agenda-start-on-weekday 1 + "Non-nil means, start the overview always on the specified weekday. +0 Denotes Sunday, 1 denotes Monday etc. +When nil, always start on the current day." + :group 'org-agenda-display + :type '(choice (const :tag "Today" nil) + (number :tag "Weekday No."))) + +(defcustom org-agenda-ndays 7 + "Number of days to include in overview display. +Should be 1 or 7." + :group 'org-agenda-display + :type 'number) + +(defcustom org-agenda-use-time-grid t + "Non-nil means, show a time grid in the agenda schedule. +A time grid is a set of lines for specific times (like every two hours between +8:00 and 20:00). The items scheduled for a day at specific times are +sorted in between these lines. +For details about when the grid will be shown, and what it will look like, see +the variable `org-agenda-time-grid'." + :group 'org-agenda-display + :type 'boolean) + +(defcustom org-agenda-time-grid + '((daily today require-timed) + "----------------" + (800 1000 1200 1400 1600 1800 2000)) + + "The settings for time grid for agenda display. +This is a list of three items. The first item is again a list. It contains +symbols specifying conditions when the grid should be displayed: + + daily if the agenda shows a single day + weekly if the agenda shows an entire week + today show grid on current date, independent of daily/weekly display + require-timed show grid only if at least on item has a time specification + +The second item is a string which will be places behing the grid time. + +The third item is a list of integers, indicating the times that should have +a grid line." + :group 'org-agenda-display + :type + '(list + (set :greedy t :tag "Grid Display Options" + (const :tag "Show grid in single day agenda display" daily) + (const :tag "Show grid in weekly agenda display" weekly) + (const :tag "Always show grid for today" today) + (const :tag "Show grid only if any timed entries are present" + require-timed) + (const :tag "Skip grid times already present in an entry" + remove-match)) + (string :tag "Grid String") + (repeat :tag "Grid Times" (integer :tag "Time")))) + +(defcustom org-agenda-sorting-strategy '(time-up category-keep priority-down) + "Sorting structure for the agenda items of a single day. +This is a list of symbols which will be used in sequence to determine +if an entry should be listed before another entry. The following +symbols are recognized: + +time-up Put entries with time-of-day indications first, early first +time-down Put entries with time-of-day indications first, late first +category-keep Keep the default order of categories, corresponding to the + sequence in `org-agenda-files'. +category-up Sort alphabetically by category, A-Z. +category-down Sort alphabetically by category, Z-A. +priority-up Sort numerically by priority, high priority last. +priority-down Sort numerically by priority, high priority first. + +The different possibilities will be tried in sequence, and testing stops +if one comparison returns a \"not-equal\". For example, the default + '(time-up category-keep priority-down) +means: Pull out all entries having a specified time of day and sort them, +in order to make a time schedule for the current day the first thing in the +agenda listing for the day. Of the entries without a time indication, keep +the grouped in categories, don't sort the categories, but keep them in +the sequence given in `org-agenda-files'. Within each category sort by +priority. + +Leaving out `category-keep' would mean that items will be sorted across +categories by priority." + :group 'org-agenda-display + :type '(repeat + (choice + (const time-up) + (const time-down) + (const category-keep) + (const category-up) + (const category-down) + (const priority-up) + (const priority-down)))) + +(defcustom org-sort-agenda-notime-is-late t + "Non-nil means, items without time are considered late. +This is only relevant for sorting. When t, items which have no explicit +time like 15:30 will be considered as 24:01, i.e. later than any items which +do have a time. When nil, the default time is before 0:00. You can use this +option to decide if the schedule for today should come before or after timeless +agenda entries." + :group 'org-agenda-display + :type 'boolean) + + +(defgroup org-agenda-prefix nil + "Options concerning the entry prefix in the Org-mode agenda display." + :tag "Org Agenda Prefix" + :group 'org-agenda) + +(defcustom org-agenda-prefix-format " %-12:c%?-12t% s" + "Format specification for the prefix of items in the agenda buffer. +This format works similar to a printf format, with the following meaning: + + %c the category of the item, \"Diary\" for entries from the diary, or + as given by the CATEGORY keyword or derived from the file name. + %T the first tag of the item. + %t the time-of-day specification if one applies to the entry, in the + format HH:MM + %s Scheduling/Deadline information, a short string + +All specifiers work basically like the standard `%s' of printf, but may +contain two additional characters: A question mark just after the `%' and +a whitespace/punctuation character just before the final letter. + +If the first character after `%' is a question mark, the entire field +will only be included if the corresponding value applies to the +current entry. This is useful for fields which should have fixed +width when present, but zero width when absent. For example, +\"%?-12t\" will result in a 12 character time field if a time of the +day is specified, but will completely disappear in entries which do +not contain a time. + +If there is punctuation or whitespace character just before the final +format letter, this character will be appended to the field value if +the value is not empty. For example, the format \"%-12:c\" leads to +\"Diary: \" if the category is \"Diary\". If the category were be +empty, no additional colon would be interted. + +The default value of this option is \" %-12:c%?-12t% s\", meaning: +- Indent the line with two space characters +- Give the category in a 12 chars wide field, padded with whitespace on + the right (because of `-'). Append a colon if there is a category + (because of `:'). +- If there is a time-of-day, put it into a 12 chars wide field. If no + time, don't put in an empty field, just skip it (because of '?'). +- Finally, put the scheduling information and append a whitespace. + +As another example, if you don't want the time-of-day of entries in +the prefix, you could use: + + (setq org-agenda-prefix-format \" %-11:c% s\") + +See also the variables `org-agenda-remove-times-when-in-prefix' and +`org-agenda-remove-tags-when-in-prefix'." + :type 'string + :group 'org-agenda-prefix) + +(defcustom org-timeline-prefix-format " % s" + "Like `org-agenda-prefix-format', but for the timeline of a single file." + :type 'string + :group 'org-agenda-prefix) + +(defvar org-prefix-format-compiled nil + "The compiled version of the most recently used prefix format. +Depending on which command was used last, this may be the compiled version +of `org-agenda-prefix-format' or `org-timeline-prefix-format'.") + +(defcustom org-agenda-remove-times-when-in-prefix t + "Non-nil means, remove duplicate time specifications in agenda items. +When the format `org-agenda-prefix-format' contains a `%t' specifier, a +time-of-day specification in a headline or diary entry is extracted and +placed into the prefix. If this option is non-nil, the original specification +\(a timestamp or -range, or just a plain time(range) specification like +11:30-4pm) will be removed for agenda display. This makes the agenda less +cluttered. +The option can be t or nil. It may also be the symbol `beg', indicating +that the time should only be removed what it is located at the beginning of +the headline/diary entry." + :group 'org-agenda-prefix + :type '(choice + (const :tag "Always" t) + (const :tag "Never" nil) + (const :tag "When at beginning of entry" beg))) + +(defcustom org-agenda-remove-tags-when-in-prefix nil + "Non-nil means, the tags from copy of headline in agenda. +When this is the symbol `prefix', only remove tags when +`org-agenda-prefix-format' contains a `%T' specifier." + :group 'org-agenda-prefix + :type '(choice + (const :tag "Always" t) + (const :tag "Never" nil) + (const :tag "When prefix format contains %T" prefix))) + (defgroup org-export nil "Options for exporting org-listings." :tag "Org Export" :group 'org) +(defgroup org-export-general nil + "General options for exporting Org-mode files." + :tag "Org Export General" + :group 'org-export) + (defcustom org-export-language-setup '(("en" "Author" "Date" "Table of Contents") ("da" "Ophavsmand" "Dato" "Indhold") @@ -1512,7 +1571,7 @@ Automatically means, when TAB or RET or C-c C-c are pressed in the line." "Terms used in export text, translated to different languages. Use the variable `org-export-default-language' to set the language, or use the +OPTION lines for a per-file setting." - :group 'org-export + :group 'org-export-general :type '(repeat (list (string :tag "HTML language tag") @@ -1523,9 +1582,208 @@ or use the +OPTION lines for a per-file setting." (defcustom org-export-default-language "en" "The default language of HTML export, as a string. This should have an association in `org-export-language-setup'." - :group 'org-export + :group 'org-export-general :type 'string) +(defcustom org-export-headline-levels 3 + "The last level which is still exported as a headline. +Inferior levels will produce itemize lists when exported. +Note that a numeric prefix argument to an exporter function overrides +this setting. + +This option can also be set with the +OPTIONS line, e.g. \"H:2\"." + :group 'org-export-general + :type 'number) + +(defcustom org-export-with-section-numbers t + "Non-nil means, add section numbers to headlines when exporting. + +This option can also be set with the +OPTIONS line, e.g. \"num:t\"." + :group 'org-export-general + :type 'boolean) + +(defcustom org-export-with-toc t + "Non-nil means, create a table of contents in exported files. +The TOC contains headlines with levels up to`org-export-headline-levels'. + +Headlines which contain any TODO items will be marked with \"(*)\" in +ASCII export, and with red color in HTML output. + +In HTML output, the TOC will be clickable. + +This option can also be set with the +OPTIONS line, e.g. \"toc:nil\"." + :group 'org-export-general + :type 'boolean) + +(defcustom org-export-plain-list-max-depth 20 + "Maximum depth of hand-formatted lists in HTML export. + +Org-mode parses hand-formatted enumeration and bullet lists and +transforms them to HTML open export. Different indentation of the +bullet or number indicates different list nesting levels. To avoid +confusion, only a single level is allowed by default. When this is +larger than 1, deeper indentation leads to deeper list nesting. For +example, the default value of 3 allows the following list to be +formatted correctly in HTML: + + * Fruit + - Apple + - Banana + 1. from Africa + 2. from South America + - Pineapple + * Bread + * Dairy products" + :group 'org-export-general + :type 'integer) + +(defcustom org-export-preserve-breaks nil + "Non-nil means, preserve all line breaks when exporting. +Normally, in HTML output paragraphs will be reformatted. In ASCII +export, line breaks will always be preserved, regardless of this variable. + +This option can also be set with the +OPTIONS line, e.g. \"\\n:t\"." + :group 'org-export-general + :type 'boolean) + +(defcustom org-export-with-emphasize t + "Non-nil means, interpret *word*, /word/, and _word_ as emphasized text. +If the export target supports emphasizing text, the word will be +typeset in bold, italic, or underlined, respectively. Works only for +single words, but you can say: I *really* *mean* *this*. +Not all export backends support this. + +This option can also be set with the +OPTIONS line, e.g. \"*:nil\"." + :group 'org-export-general + :type 'boolean) + +;; FIXME: Is this in the right place???? +(defcustom org-match-sexp-depth 3 + "Number of stacked braces for sub/superscript matching. +This has to be set before loading org.el to be effective." + :group 'org-export-general + :type 'integer) + +(defcustom org-export-with-sub-superscripts t + "Non-nil means, interpret \"_\" and \"^\" for export. +When this option is turned on, you can use TeX-like syntax for sub- and +superscripts. Several characters after \"_\" or \"^\" will be +considered as a single item - so grouping with {} is normally not +needed. For example, the following things will be parsed as single +sub- or superscripts. + + 10^24 or 10^tau several digits will be considered 1 item. + 10^-12 or 10^-tau a leading sign with digits or a word + x^2-y^3 will be read as x^2 - y^3, because items are + terminated by almost any nonword/nondigit char. + x_{i^2} or x^(2-i) braces or parenthesis do grouping. + +Still, ambiguity is possible - so when in doubt use {} to enclose the +sub/superscript. +Not all export backends support this. + +This option can also be set with the +OPTIONS line, e.g. \"^:nil\"." + :group 'org-export-general + :type 'boolean) + +(defcustom org-export-with-TeX-macros t + "Non-nil means, interpret simple TeX-like macros when exporting. +For example, HTML export converts \\alpha to α and \\AA to Å. +No only real TeX macros will work here, but the standard HTML entities +for math can be used as macro names as well. For a list of supported +names in HTML export, see the constant `org-html-entities'. +Not all export backends support this. + +This option can also be set with the +OPTIONS line, e.g. \"TeX:nil\"." + :group 'org-export-general + :type 'boolean) + +(defcustom org-export-with-fixed-width t + "Non-nil means, lines starting with \":\" will be in fixed width font. +This can be used to have pre-formatted text, fragments of code etc. For +example: + : ;; Some Lisp examples + : (while (defc cnt) + : (ding)) +will be looking just like this in also HTML. +Not all export backends support this. + +This option can also be set with the +OPTIONS line, e.g. \"::nil\"." + :group 'org-export-general + :type 'boolean) + +(defcustom org-export-with-tables t + "If non-nil, lines starting with \"|\" define a table. +For example: + + | Name | Address | Birthday | + |-------------+----------+-----------| + | Arthur Dent | England | 29.2.2100 | + +Not all export backends support this. + +This option can also be set with the +OPTIONS line, e.g. \"|:nil\"." + :group 'org-export-general + :type 'boolean) + +(defcustom org-export-highlight-first-table-line t + "Non-nil means, highlight the first table line. +In HTML export, this means use instead of . +In tables created with table.el, this applies to the first table line. +In Org-mode tables, all lines before the first horizontal separator +line will be formatted with tags." + :group 'org-export-general + :type 'boolean) + +(defcustom org-export-table-remove-special-lines t + "Remove special lines and marking characters in calculating tables. +This removes the special marking character column from tables that are set +up for spreadsheet calculations. It also removes the entire lines +marked with `!', `_', or `^'. The lines with `$' are kept, because +the values of constants may be useful to have." + :group 'org-export-general + :type 'boolean) + +(defcustom org-export-prefer-native-exporter-for-tables nil + "Non-nil means, always export tables created with table.el natively. +Natively means, use the HTML code generator in table.el. +When nil, Org-mode's own HTML generator is used when possible (i.e. if +the table does not use row- or column-spanning). This has the +advantage, that the automatic HTML conversions for math symbols and +sub/superscripts can be applied. Org-mode's HTML generator is also +much faster." + :group 'org-export-general + :type 'boolean) + +(defgroup org-export-ascii nil + "Options specific for ASCII export of Org-mode files." + :tag "Org Export ASCII" + :group 'org-export) + +(defcustom org-export-ascii-show-new-buffer t + "Non-nil means, popup buffer containing the exported ASCII text. +Otherwise the buffer will just be saved to a file and stay hidden." + :group 'org-export-ascii + :type 'boolean) + +(defgroup org-export-xml nil + "Options specific for XML export of Org-mode files." + :tag "Org Export XML" + :group 'org-export) + +(defcustom org-export-xml-type 'xoxo + "The kind of XML to be produced by the XML exporter. +Allowed values are: +xoxo The XOXO exporter." + :group 'org-export-xml + :type '(choice + (const :tag "XOXO" xoxo))) + +(defgroup org-export-html nil + "Options specific for HTML export of Org-mode files." + :tag "Org Export HTML" + :group 'org-export) + (defcustom org-export-html-style "