Release 4.53
This commit is contained in:
parent
d790f20ba9
commit
4c7908e4c2
2
Makefile
2
Makefile
|
@ -56,7 +56,7 @@ CP = cp -p
|
|||
##----------------------------------------------------------------------
|
||||
|
||||
# The following variables need to be defined by the maintainer
|
||||
LISPFILES = org.el org-publish.el org-install.el
|
||||
LISPFILES = org.el org-publish.el org-mouse.el org-install.el
|
||||
ELCFILES = $(LISPFILES:.el=.elc)
|
||||
TEXIFILES = org.texi
|
||||
INFOFILES = org
|
||||
|
|
494
org
494
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.52).
|
||||
This manual is for Org-mode (version 4.53).
|
||||
|
||||
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.52).
|
||||
This manual is for Org-mode (version 4.53).
|
||||
|
||||
Copyright (C) 2004, 2005, 2006 Free Software Foundation
|
||||
|
||||
|
@ -139,11 +139,12 @@ Timestamps
|
|||
|
||||
* Time stamps:: Assigning a time to a tree entry
|
||||
* Creating timestamps:: Commands which insert timestamps
|
||||
* Custom time format:: If you cannot work with the ISO format
|
||||
* Progress logging:: Documenting when what work was done.
|
||||
|
||||
Creating timestamps
|
||||
|
||||
* The date/time prompt::
|
||||
* The date/time prompt:: How org-mode helps you entring date and time
|
||||
|
||||
Progress Logging
|
||||
|
||||
|
@ -286,6 +287,15 @@ can be exported as a structured ASCII file, as HTML, or (todo and
|
|||
agenda items only) as an iCalendar file. It can also serve as a
|
||||
publishing tool for a set of linked webpages.
|
||||
|
||||
An important design aspect that distinguishes Org-mode from other
|
||||
packages like Planner/Muse is that it encougages to store every piece of
|
||||
information only once. In Planner, you have project pages, day pages
|
||||
and possibly other files, duplicating some information such as tasks.
|
||||
In Org-mode, you only have notes files. In your notes you mark entries
|
||||
as tasks, label them with tags and timestamps. All necessary lists like
|
||||
a schedule for the day, the agenda for a meeting, tasks lists selected
|
||||
by tags etc are created dynamically when you need them.
|
||||
|
||||
Org-mode keeps simple things simple. When first fired up, it should
|
||||
feel like a straightforward, easy to use outliner. Complexity is not
|
||||
imposed, but a large amount of functionality is available when you need
|
||||
|
@ -297,11 +307,12 @@ example:
|
|||
* as an ASCII table editor with spreadsheet-like capabilities
|
||||
* as a TODO list editor
|
||||
* as a full agenda and planner with deadlines and work scheduling
|
||||
* as an environment to implement David Allen's GTD system
|
||||
* as a simple hypertext system, with HTML export
|
||||
* as a publishing tool to create a set of interlinked webpages
|
||||
|
||||
The Org-mode table editor can be integrated into any major mode by
|
||||
activating the minor Orgtbl-mode.
|
||||
Org-mode's automatic, context sensitive table editor can be
|
||||
integrated into any major mode by activating the minor Orgtbl-mode.
|
||||
|
||||
There is a website for Org-mode which provides links to the newest
|
||||
version of Org-mode, as well as additional information, frequently asked
|
||||
|
@ -554,7 +565,10 @@ File: org, Node: Structure editing, Next: Archiving, Prev: Motion, Up: Docum
|
|||
rest of the line becomes the new headline. If the command is used
|
||||
at the beginning of a headline, the new headline is created before
|
||||
the current line. If at the beginning of any other line, the
|
||||
content of that line is made the new heading.
|
||||
content of that line is made the new heading. If the command is
|
||||
used at the end of a folded subtree (i.e. behind the ellipses at
|
||||
the end of a headline), then a headline like the current one will
|
||||
be inserted after the end of the subtree.
|
||||
|
||||
`M-S-<RET>'
|
||||
Insert new TODO entry with same level as current heading.
|
||||
|
@ -2215,6 +2229,7 @@ planning.
|
|||
|
||||
* Time stamps:: Assigning a time to a tree entry
|
||||
* Creating timestamps:: Commands which insert timestamps
|
||||
* Custom time format:: If you cannot work with the ISO format
|
||||
* Progress logging:: Documenting when what work was done.
|
||||
|
||||
|
||||
|
@ -2224,10 +2239,11 @@ File: org, Node: Time stamps, Next: Creating timestamps, Prev: Timestamps, U
|
|||
=========================================
|
||||
|
||||
A time stamp is a specification of a date (possibly with time) in a
|
||||
special format, either `<2003-09-16 Tue>' or `<2003-09-16 Tue 09:39>'.
|
||||
A time stamp can appear anywhere in the headline or body of an org-tree
|
||||
entry. Its presence allows entries to be shown on specific dates in
|
||||
the agenda (*note Weekly/Daily agenda::). We distinguish:
|
||||
special format, either `<2003-09-16 Tue>' or `<2003-09-16 Tue
|
||||
09:39>'(1). A time stamp can appear anywhere in the headline or body
|
||||
of an org-tree entry. Its presence allows entries to be shown on
|
||||
specific dates in the agenda (*note Weekly/Daily agenda::). We
|
||||
distinguish:
|
||||
|
||||
PLAIN TIME STAMP
|
||||
A simple time stamp just assigns a date/time to an item. This is
|
||||
|
@ -2237,6 +2253,15 @@ PLAIN TIME STAMP
|
|||
headline of an entry associated with a plain time stamp will be
|
||||
shown exactly on that date.
|
||||
|
||||
* Meet Peter at the movies <2006-11-01 Wed 19:15>
|
||||
|
||||
INACTIVE TIME STAMP
|
||||
Just like a plain time stamp, but with square brackets instead of
|
||||
angular ones. These time stamps are inactive in the sense that
|
||||
thay do _not_ trigger an entry to show up in the agenda.
|
||||
|
||||
* Gillian comes late for the fifth time [2006-11-01 Wed]
|
||||
|
||||
TIME STAMP RANGE
|
||||
Two time stamps connected by `--' denote a time range. The
|
||||
headline will be shown on the first and last day of the range, and
|
||||
|
@ -2284,8 +2309,13 @@ TIME RANGE WITH CLOCK KEYWORD
|
|||
enclosed in square brackets instead of angular brackets. *Note
|
||||
Clocking work time::.
|
||||
|
||||
---------- Footnotes ----------
|
||||
|
||||
(1) This is the standard ISO date/time format. If you cannot get
|
||||
used to these, see *Note Custom time format::
|
||||
|
||||
|
||||
File: org, Node: Creating timestamps, Next: Progress logging, Prev: Time stamps, Up: Timestamps
|
||||
File: org, Node: Creating timestamps, Next: Custom time format, Prev: Time stamps, Up: Timestamps
|
||||
|
||||
6.2 Creating timestamps
|
||||
=======================
|
||||
|
@ -2318,8 +2348,8 @@ format.
|
|||
timestamp in the current line, goto the corresponding date instead.
|
||||
|
||||
`C-c C-o'
|
||||
Access the agenda for the date given by the time stamp at point
|
||||
(*note Weekly/Daily agenda::).
|
||||
Access the agenda for the date given by the time stamp or -range at
|
||||
point (*note Weekly/Daily agenda::).
|
||||
|
||||
`C-c C-d'
|
||||
Insert `DEADLINE' keyword along with a stamp. The insertion will
|
||||
|
@ -2346,9 +2376,9 @@ format.
|
|||
`S-<down>'
|
||||
Change the item under the cursor in a timestamp. The cursor can
|
||||
be on a year, month, day, hour or minute. Note that if the cursor
|
||||
is not at a time stamp, these same keys modify the priority of an
|
||||
item. (*note Priorities::). The key bindings also conflict with
|
||||
CUA-mode (*note Conflicts::).
|
||||
is in a headline and not at a time stamp, these same keys modify
|
||||
the priority of an item. (*note Priorities::). The key bindings
|
||||
also conflict with CUA-mode (*note Conflicts::).
|
||||
|
||||
`C-c C-y'
|
||||
Evaluate a time range by computing the difference between start and
|
||||
|
@ -2357,7 +2387,7 @@ format.
|
|||
|
||||
* Menu:
|
||||
|
||||
* The date/time prompt::
|
||||
* The date/time prompt:: How org-mode helps you entring date and time
|
||||
|
||||
|
||||
File: org, Node: The date/time prompt, Prev: Creating timestamps, Up: Creating timestamps
|
||||
|
@ -2415,7 +2445,8 @@ can control the calendar fully from the minibuffer:
|
|||
One month back.
|
||||
|
||||
`<RET>'
|
||||
Choose date in calendar (only if nothing typed into minibuffer).
|
||||
Choose date in calendar (only if nothing was typed into
|
||||
minibuffer).
|
||||
|
||||
---------- Footnotes ----------
|
||||
|
||||
|
@ -2423,9 +2454,45 @@ can control the calendar fully from the minibuffer:
|
|||
`org-popup-calendar-for-date-prompt'.
|
||||
|
||||
|
||||
File: org, Node: Progress logging, Prev: Creating timestamps, Up: Timestamps
|
||||
File: org, Node: Custom time format, Next: Progress logging, Prev: Creating timestamps, Up: Timestamps
|
||||
|
||||
6.3 Progress Logging
|
||||
6.3 Custom time format
|
||||
======================
|
||||
|
||||
Org-mode uses the standard ISO notation for dates and times as it is
|
||||
defined in ISO 8601. If you cannot get used to this and require another
|
||||
representation of date and time to keep you happy, you can get it by
|
||||
customizing the variables `org-display-custom-times' and
|
||||
`org-time-stamp-custom-formats'.
|
||||
|
||||
`C-c C-x C-t'
|
||||
Toggle the display of custom formats for dates and times.
|
||||
|
||||
Org-mode needs the default format for scanning, so the custom date/time
|
||||
format does not _replace_ the default format - instead it is put _over_
|
||||
the default format using text properties. This has the following
|
||||
consequences:
|
||||
* You cannot place the cursor onto a time stamp anymore, only before
|
||||
or after.
|
||||
|
||||
* The `S-<up>/<down>' keys can no longer be used to adjust each
|
||||
component of a time stamp. If the cursor is at the beginning of
|
||||
the stamp, `S-<up>/<down>' will change the stamp by one day, just
|
||||
like `S-<left>/<right>'. At the end of the stamp, the time will
|
||||
be changed by one minute.
|
||||
|
||||
* When you delete a time stamp character-by-character, it will only
|
||||
disappear from the buffer after _all_ (invisible) characters
|
||||
belonging to the ISO timestamp have been removed.
|
||||
|
||||
* If the custom time stamp format is longer than the default and you
|
||||
are using dates in tables, table alignment will be messed up. If
|
||||
the custom format is shorter, things do work as expected.
|
||||
|
||||
|
||||
File: org, Node: Progress logging, Prev: Custom time format, Up: Timestamps
|
||||
|
||||
6.4 Progress Logging
|
||||
====================
|
||||
|
||||
Org-mode can automatically record a time stamp when you mark a TODO item
|
||||
|
@ -2441,7 +2508,7 @@ stop working on an aspect of a project.
|
|||
|
||||
File: org, Node: Closing items, Next: Clocking work time, Prev: Progress logging, Up: Progress logging
|
||||
|
||||
6.3.1 Closing items
|
||||
6.4.1 Closing items
|
||||
-------------------
|
||||
|
||||
If you want to keep track of _when_ a certain TODO item was finished,
|
||||
|
@ -2462,7 +2529,7 @@ possibility to record an additional note together with a timestamp.
|
|||
|
||||
File: org, Node: Clocking work time, Prev: Closing items, Up: Progress logging
|
||||
|
||||
6.3.2 Clocking work time
|
||||
6.4.2 Clocking work time
|
||||
------------------------
|
||||
|
||||
Org-mode allows you to clock the time you spent on specific tasks in a
|
||||
|
@ -2479,7 +2546,8 @@ also computes the total time spent on each subtree of a project.
|
|||
Stop the clock (clock-out). The inserts another timestamp at the
|
||||
same location where the clock was last started. It also directly
|
||||
computes the resulting time in inserts it after the time range as
|
||||
`=> HH:MM'.
|
||||
`=> HH:MM'. See the variable `org-log-done' for the possibility to
|
||||
record an additional note together with a the clock-out time stamp.
|
||||
|
||||
`C-c C-y'
|
||||
Recompute the time interval after changing one of the time stamps.
|
||||
|
@ -2499,7 +2567,8 @@ also computes the total time spent on each subtree of a project.
|
|||
This puts overlays at the end of each headline, showing the total
|
||||
time recorded under that heading, including the time of any
|
||||
subheadings. You can use visibility cycling to study the tree, but
|
||||
the overlays disappear automatically when the buffer is changed.
|
||||
the overlays disappear when you change the buffer (see variable
|
||||
`org-remove-highlights-with-change') or press `C-c C-c'.
|
||||
|
||||
`C-c C-x C-r'
|
||||
Insert a dynamic block (*note Dynamic blocks::) containing a clock
|
||||
|
@ -2535,9 +2604,6 @@ also computes the total time spent on each subtree of a project.
|
|||
the agenda (*note Weekly/Daily agenda::) to show which tasks have been
|
||||
worked on or closed during a day.
|
||||
|
||||
See the variable `org-log-done' for the possibility to record an
|
||||
additional note together with a the clock-out time stamp.
|
||||
|
||||
---------- Footnotes ----------
|
||||
|
||||
(1) Note that all parameters must be specified in a single line -
|
||||
|
@ -2725,21 +2791,21 @@ operator `&' is optional when `+' or `-' is present. Examples:
|
|||
|
||||
If you are using multi-state TODO keywords (*note TODO
|
||||
extensions::), it can be useful to also match on the TODO keyword.
|
||||
This can be done by adding a condition after a double slash to a tags
|
||||
match. The syntax is similar to the tag matches, but should be applied
|
||||
with consideration: For example, a positive selection on several TODO
|
||||
This can be done by adding a condition after a slash to a tags match.
|
||||
The syntax is similar to the tag matches, but should be applied with
|
||||
consideration: For example, a positive selection on several TODO
|
||||
keywords can not meaningfully be combined with boolean AND. However,
|
||||
_negative selection_ combined with AND can be meaningful. Examples:
|
||||
|
||||
`WORK//WAITING'
|
||||
`WORK/WAITING'
|
||||
Select `:WORK:'-tagged TODO lines with the specific TODO keyword
|
||||
`WAITING'.
|
||||
|
||||
`WORK//-WAITING-NEXT'
|
||||
`WORK/-WAITING-NEXT'
|
||||
Select `:WORK:'-tagged TODO lines that are neither `WAITING' nor
|
||||
`NEXT'
|
||||
|
||||
`WORK//+WAITING|+NEXT'
|
||||
`WORK/+WAITING|+NEXT'
|
||||
Select `:WORK:'-tagged TODO lines that are either `WAITING' or
|
||||
`NEXT'.
|
||||
|
||||
|
@ -4487,6 +4553,10 @@ file is visited again in a new Emacs session.
|
|||
showstars show all stars starting a headline
|
||||
odd allow only odd outline levels (1,3,...)
|
||||
oddeven allow all outline levels
|
||||
To turn on custom format overlayes over time stamps (variables
|
||||
`org-put-time-stamp-overlays' and
|
||||
`org-time-stamp-overlay-formats'), use
|
||||
customtime overlay custom time format
|
||||
|
||||
`#+SEQ_TODO: #+TYP_TODO:'
|
||||
These lines set the TODO keywords and their interpretation in the
|
||||
|
@ -5065,7 +5135,7 @@ Index
|
|||
* active region <2>: ASCII export. (line 9)
|
||||
* active region <3>: Built-in table editor.
|
||||
(line 165)
|
||||
* active region: Structure editing. (line 51)
|
||||
* active region: Structure editing. (line 54)
|
||||
* agenda: Weekly/Daily agenda. (line 6)
|
||||
* agenda dispatcher: Agenda dispatcher. (line 6)
|
||||
* agenda files: Agenda files. (line 6)
|
||||
|
@ -5110,8 +5180,8 @@ Index
|
|||
* checkboxes: Checkboxes. (line 6)
|
||||
* children, subtree visibility state: Visibility cycling. (line 10)
|
||||
* clean outline view: Clean view. (line 6)
|
||||
* CLOCK keyword: Time stamps. (line 61)
|
||||
* CLOSED keyword: Time stamps. (line 55)
|
||||
* CLOCK keyword: Time stamps. (line 71)
|
||||
* CLOSED keyword: Time stamps. (line 65)
|
||||
* column formula: Column formulas. (line 6)
|
||||
* commands, in agenda buffer: Agenda commands. (line 6)
|
||||
* comment lines: Comment lines. (line 6)
|
||||
|
@ -5135,17 +5205,19 @@ Index
|
|||
* creating timestamps: Creating timestamps. (line 6)
|
||||
* CUA.el: Conflicts. (line 15)
|
||||
* custom agenda views: Custom agenda views. (line 6)
|
||||
* custom date/time format: Custom time format. (line 6)
|
||||
* custom search strings: Custom searches. (line 6)
|
||||
* customization: Customization. (line 6)
|
||||
* cutting, of subtrees: Structure editing. (line 6)
|
||||
* cycling, of TODO states: TODO basics. (line 13)
|
||||
* cycling, visibility: Visibility cycling. (line 6)
|
||||
* daily agenda: Weekly/Daily agenda. (line 6)
|
||||
* date format, custom: Custom time format. (line 6)
|
||||
* date stamps <1>: Time stamps. (line 6)
|
||||
* date stamps: Timestamps. (line 6)
|
||||
* date, reading in minibuffer: The date/time prompt.
|
||||
(line 6)
|
||||
* DEADLINE keyword: Time stamps. (line 43)
|
||||
* DEADLINE keyword: Time stamps. (line 53)
|
||||
* deadlines: Time stamps. (line 6)
|
||||
* demotion, of subtrees: Structure editing. (line 6)
|
||||
* diary entries, creating from agenda: Agenda commands. (line 179)
|
||||
|
@ -5171,7 +5243,7 @@ Index
|
|||
* external archiving: Moving subtrees. (line 6)
|
||||
* external links: External links. (line 6)
|
||||
* external links, in HTML export: HTML export. (line 35)
|
||||
* FAQ: Summary. (line 41)
|
||||
* FAQ: Summary. (line 51)
|
||||
* feedback: Feedback. (line 6)
|
||||
* file links: External links. (line 6)
|
||||
* file links, searching: Search options. (line 6)
|
||||
|
@ -5215,6 +5287,7 @@ Index
|
|||
* hyperlinks: Hyperlinks. (line 6)
|
||||
* iCalendar export: iCalendar export. (line 6)
|
||||
* in-buffer settings: In-buffer settings. (line 6)
|
||||
* inactive timestamp: Time stamps. (line 24)
|
||||
* index, of published pages: Project page index. (line 6)
|
||||
* Info links: External links. (line 6)
|
||||
* inheritance, of tags: Tag inheritance. (line 6)
|
||||
|
@ -5310,13 +5383,13 @@ Index
|
|||
* region, active <2>: ASCII export. (line 9)
|
||||
* region, active <3>: Built-in table editor.
|
||||
(line 165)
|
||||
* region, active: Structure editing. (line 51)
|
||||
* region, active: Structure editing. (line 54)
|
||||
* remember.el <1>: Cooperation. (line 33)
|
||||
* remember.el: Remember. (line 6)
|
||||
* remote editing, from agenda: Agenda commands. (line 100)
|
||||
* richer text: Enhancing text. (line 6)
|
||||
* RMAIL links: External links. (line 6)
|
||||
* SCHEDULED keyword: Time stamps. (line 30)
|
||||
* SCHEDULED keyword: Time stamps. (line 40)
|
||||
* scheduling: Time stamps. (line 6)
|
||||
* search option in file links: Search options. (line 6)
|
||||
* search strings, custom: Custom searches. (line 6)
|
||||
|
@ -5379,6 +5452,7 @@ Index
|
|||
* TeX-like syntax for sub- and superscripts: Export options. (line 25)
|
||||
* thanks: History and Acknowledgments.
|
||||
(line 6)
|
||||
* time format, custom: Custom time format. (line 6)
|
||||
* time grid: Time-of-day specifications.
|
||||
(line 26)
|
||||
* time stamps <1>: Time stamps. (line 6)
|
||||
|
@ -5389,8 +5463,9 @@ Index
|
|||
(line 6)
|
||||
* time-sorted view: Timeline. (line 6)
|
||||
* timeline, single file: Timeline. (line 6)
|
||||
* timerange: Time stamps. (line 21)
|
||||
* timestamp: Time stamps. (line 13)
|
||||
* timerange: Time stamps. (line 31)
|
||||
* timestamp: Time stamps. (line 14)
|
||||
* timestamp, inactive: Time stamps. (line 24)
|
||||
* timestamps, creating: Creating timestamps. (line 6)
|
||||
* TODO items: TODO items. (line 6)
|
||||
* TODO keyword matching: Global TODO list. (line 17)
|
||||
|
@ -5403,7 +5478,7 @@ Index
|
|||
* transient-mark-mode <2>: ASCII export. (line 9)
|
||||
* transient-mark-mode <3>: Built-in table editor.
|
||||
(line 165)
|
||||
* transient-mark-mode: Structure editing. (line 51)
|
||||
* transient-mark-mode: Structure editing. (line 54)
|
||||
* trees, sparse: Sparse trees. (line 6)
|
||||
* trees, visibility: Visibility cycling. (line 6)
|
||||
* tty keybindings: TTY keys. (line 6)
|
||||
|
@ -5561,7 +5636,7 @@ Key Index
|
|||
(line 119)
|
||||
* C-c C-s <1>: Agenda commands. (line 136)
|
||||
* C-c C-s: Creating timestamps. (line 48)
|
||||
* C-c C-t <1>: Clocking work time. (line 25)
|
||||
* C-c C-t <1>: Clocking work time. (line 26)
|
||||
* C-c C-t: TODO basics. (line 13)
|
||||
* C-c C-u: Motion. (line 18)
|
||||
* C-c C-v: TODO basics. (line 26)
|
||||
|
@ -5569,25 +5644,26 @@ Key Index
|
|||
* C-c C-x C-a: ARCHIVE tag. (line 28)
|
||||
* C-c C-x C-b: Checkboxes. (line 38)
|
||||
* C-c C-x C-c: Agenda commands. (line 201)
|
||||
* C-c C-x C-d: Clocking work time. (line 33)
|
||||
* C-c C-x C-d: Clocking work time. (line 34)
|
||||
* C-c C-x C-i: Clocking work time. (line 12)
|
||||
* C-c C-x C-k: Structure editing. (line 36)
|
||||
* C-c C-x C-k: Structure editing. (line 39)
|
||||
* C-c C-x C-l: Processing LaTeX fragments.
|
||||
(line 9)
|
||||
* C-c C-x C-o: Clocking work time. (line 14)
|
||||
* C-c C-x C-r: Clocking work time. (line 40)
|
||||
* C-c C-x C-r: Clocking work time. (line 42)
|
||||
* C-c C-x C-t: Custom time format. (line 12)
|
||||
* C-c C-x C-u: Dynamic blocks. (line 21)
|
||||
* C-c C-x C-w <1>: Built-in table editor.
|
||||
(line 108)
|
||||
* C-c C-x C-w: Structure editing. (line 36)
|
||||
* C-c C-x C-x: Clocking work time. (line 29)
|
||||
* C-c C-x C-w: Structure editing. (line 39)
|
||||
* C-c C-x C-x: Clocking work time. (line 30)
|
||||
* C-c C-x C-y <1>: Built-in table editor.
|
||||
(line 112)
|
||||
* C-c C-x C-y: Structure editing. (line 43)
|
||||
* C-c C-x C-y: Structure editing. (line 46)
|
||||
* C-c C-x M-w <1>: Built-in table editor.
|
||||
(line 105)
|
||||
* C-c C-x M-w: Structure editing. (line 40)
|
||||
* C-c C-y <1>: Clocking work time. (line 20)
|
||||
* C-c C-x M-w: Structure editing. (line 43)
|
||||
* C-c C-y <1>: Clocking work time. (line 21)
|
||||
* C-c C-y: Creating timestamps. (line 66)
|
||||
* C-c l: Handling links. (line 9)
|
||||
* C-c {: CDLaTeX mode. (line 21)
|
||||
|
@ -5602,7 +5678,7 @@ Key Index
|
|||
* C-u C-c C-l: Handling links. (line 43)
|
||||
* C-u C-c C-x C-a: ARCHIVE tag. (line 31)
|
||||
* C-u C-c C-x C-u <1>: Dynamic blocks. (line 22)
|
||||
* C-u C-c C-x C-u: Clocking work time. (line 67)
|
||||
* C-u C-c C-x C-u: Clocking work time. (line 69)
|
||||
* D: Agenda commands. (line 68)
|
||||
* d: Agenda commands. (line 65)
|
||||
* f: Agenda commands. (line 44)
|
||||
|
@ -5617,12 +5693,12 @@ Key Index
|
|||
(line 82)
|
||||
* M-<left> <1>: Built-in table editor.
|
||||
(line 72)
|
||||
* M-<left>: Structure editing. (line 18)
|
||||
* M-<left>: Structure editing. (line 21)
|
||||
* M-<RET> <1>: Plain lists. (line 42)
|
||||
* M-<RET>: Structure editing. (line 6)
|
||||
* M-<right> <1>: Built-in table editor.
|
||||
(line 72)
|
||||
* M-<right>: Structure editing. (line 21)
|
||||
* M-<right>: Structure editing. (line 24)
|
||||
* M-<TAB> <1>: Completion. (line 10)
|
||||
* M-<TAB> <2>: Setting tags. (line 6)
|
||||
* M-<TAB>: Per file keywords. (line 17)
|
||||
|
@ -5631,26 +5707,26 @@ Key Index
|
|||
* M-S-<down> <1>: Built-in table editor.
|
||||
(line 89)
|
||||
* M-S-<down> <2>: Plain lists. (line 59)
|
||||
* M-S-<down>: Structure editing. (line 33)
|
||||
* M-S-<down>: Structure editing. (line 36)
|
||||
* M-S-<left> <1>: The date/time prompt.
|
||||
(line 50)
|
||||
* M-S-<left> <2>: Built-in table editor.
|
||||
(line 76)
|
||||
* M-S-<left> <3>: Plain lists. (line 65)
|
||||
* M-S-<left>: Structure editing. (line 24)
|
||||
* M-S-<left>: Structure editing. (line 27)
|
||||
* M-S-<RET> <1>: Checkboxes. (line 52)
|
||||
* M-S-<RET> <2>: Plain lists. (line 52)
|
||||
* M-S-<RET>: Structure editing. (line 15)
|
||||
* M-S-<RET>: Structure editing. (line 18)
|
||||
* M-S-<right> <1>: The date/time prompt.
|
||||
(line 47)
|
||||
* M-S-<right> <2>: Built-in table editor.
|
||||
(line 79)
|
||||
* M-S-<right> <3>: Plain lists. (line 65)
|
||||
* M-S-<right>: Structure editing. (line 27)
|
||||
* M-S-<right>: Structure editing. (line 30)
|
||||
* M-S-<up> <1>: Built-in table editor.
|
||||
(line 86)
|
||||
* M-S-<up> <2>: Plain lists. (line 59)
|
||||
* M-S-<up>: Structure editing. (line 30)
|
||||
* M-S-<up>: Structure editing. (line 33)
|
||||
* mouse-1 <1>: Agenda commands. (line 35)
|
||||
* mouse-1 <2>: The date/time prompt.
|
||||
(line 32)
|
||||
|
@ -5706,153 +5782,155 @@ Key Index
|
|||
|
||||
Tag Table:
|
||||
Node: Top964
|
||||
Node: Introduction10239
|
||||
Node: Summary10654
|
||||
Node: Installation12921
|
||||
Node: Activation14299
|
||||
Node: Feedback15548
|
||||
Node: Document structure16317
|
||||
Node: Outlines17091
|
||||
Node: Headlines17751
|
||||
Node: Visibility cycling18374
|
||||
Ref: Visibility cycling-Footnote-119849
|
||||
Ref: Visibility cycling-Footnote-219907
|
||||
Node: Motion19957
|
||||
Node: Structure editing20741
|
||||
Node: Archiving22850
|
||||
Node: ARCHIVE tag23408
|
||||
Node: Moving subtrees25201
|
||||
Node: Sparse trees26242
|
||||
Ref: Sparse trees-Footnote-128373
|
||||
Ref: Sparse trees-Footnote-228465
|
||||
Node: Plain lists28580
|
||||
Ref: Plain lists-Footnote-132105
|
||||
Ref: Plain lists-Footnote-232462
|
||||
Node: Tables32644
|
||||
Node: Built-in table editor33192
|
||||
Node: Narrow columns40800
|
||||
Ref: Narrow columns-Footnote-142739
|
||||
Node: Table calculations42785
|
||||
Node: Formula syntax44105
|
||||
Ref: Formula syntax-Footnote-147010
|
||||
Node: Lisp formulas47310
|
||||
Node: Column formulas48099
|
||||
Node: Advanced features49861
|
||||
Node: Named-field formulas53115
|
||||
Node: Editing/debugging formulas53755
|
||||
Node: Appetizer55513
|
||||
Node: orgtbl-mode56616
|
||||
Node: table.el57107
|
||||
Node: Hyperlinks58084
|
||||
Node: Link format58857
|
||||
Node: Internal links60150
|
||||
Ref: Internal links-Footnote-162139
|
||||
Node: Radio targets62271
|
||||
Node: CamelCase links62986
|
||||
Node: External links63580
|
||||
Node: Handling links65711
|
||||
Ref: Handling links-Footnote-170363
|
||||
Ref: Handling links-Footnote-270600
|
||||
Node: Link abbreviations70674
|
||||
Node: Search options72353
|
||||
Ref: Search options-Footnote-174131
|
||||
Node: Custom searches74212
|
||||
Node: Remember75260
|
||||
Node: TODO items78950
|
||||
Node: TODO basics79932
|
||||
Node: TODO extensions81459
|
||||
Node: Workflow states82254
|
||||
Node: TODO types83122
|
||||
Ref: TODO types-Footnote-184780
|
||||
Node: Per file keywords84862
|
||||
Ref: Per file keywords-Footnote-186316
|
||||
Node: Priorities86517
|
||||
Node: Breaking down tasks87761
|
||||
Ref: Breaking down tasks-Footnote-188281
|
||||
Node: Checkboxes88377
|
||||
Node: Timestamps91113
|
||||
Node: Time stamps91503
|
||||
Node: Creating timestamps94600
|
||||
Node: The date/time prompt97143
|
||||
Ref: The date/time prompt-Footnote-198827
|
||||
Node: Progress logging98933
|
||||
Node: Closing items99463
|
||||
Node: Clocking work time100367
|
||||
Ref: Clocking work time-Footnote-1103930
|
||||
Node: Tags104056
|
||||
Node: Tag inheritance104818
|
||||
Node: Setting tags105755
|
||||
Ref: Setting tags-Footnote-1109271
|
||||
Ref: Setting tags-Footnote-2109383
|
||||
Node: Tag searches109463
|
||||
Node: Agenda views111474
|
||||
Node: Agenda files113567
|
||||
Ref: Agenda files-Footnote-1114527
|
||||
Ref: Agenda files-Footnote-2114676
|
||||
Node: Agenda dispatcher114869
|
||||
Node: Weekly/Daily agenda116486
|
||||
Node: Calendar/Diary integration117451
|
||||
Node: Global TODO list118789
|
||||
Node: Matching headline tags120949
|
||||
Node: Timeline122007
|
||||
Node: Presentation and sorting122670
|
||||
Node: Categories123448
|
||||
Node: Time-of-day specifications124112
|
||||
Node: Sorting of agenda items126090
|
||||
Node: Agenda commands127372
|
||||
Node: Custom agenda views133260
|
||||
Node: Storing searches133935
|
||||
Node: Block agenda135847
|
||||
Node: Setting Options137077
|
||||
Node: Batch processing139789
|
||||
Node: Embedded LaTeX140919
|
||||
Ref: Embedded LaTeX-Footnote-1142011
|
||||
Node: Math symbols142201
|
||||
Node: Subscripts and Superscripts142966
|
||||
Node: LaTeX fragments143810
|
||||
Ref: LaTeX fragments-Footnote-1145918
|
||||
Node: Processing LaTeX fragments146180
|
||||
Node: CDLaTeX mode147126
|
||||
Ref: CDLaTeX mode-Footnote-1149610
|
||||
Node: Exporting149758
|
||||
Node: ASCII export151072
|
||||
Node: HTML export152362
|
||||
Node: XOXO export155198
|
||||
Node: iCalendar export155637
|
||||
Node: Text interpretation157460
|
||||
Node: Comment lines157939
|
||||
Node: Enhancing text158410
|
||||
Node: Export options160102
|
||||
Node: Publishing161769
|
||||
Ref: Publishing-Footnote-1162565
|
||||
Node: Configuration162761
|
||||
Node: Project alist163479
|
||||
Node: Sources and destinations164545
|
||||
Node: Selecting files165275
|
||||
Node: Publishing action166023
|
||||
Node: Publishing options167256
|
||||
Node: Publishing links169408
|
||||
Node: Project page index170921
|
||||
Node: Sample configuration171699
|
||||
Node: Simple example172191
|
||||
Node: Complex example172864
|
||||
Node: Triggering publication174940
|
||||
Node: Miscellaneous175625
|
||||
Node: Completion176259
|
||||
Node: Customization177730
|
||||
Node: In-buffer settings178315
|
||||
Node: The very busy C-c C-c key181736
|
||||
Node: Clean view183380
|
||||
Node: TTY keys185957
|
||||
Node: Interaction187566
|
||||
Node: Cooperation187963
|
||||
Node: Conflicts189830
|
||||
Node: Bugs191422
|
||||
Node: Extensions and Hacking193045
|
||||
Node: Extensions193531
|
||||
Node: Dynamic blocks195101
|
||||
Node: History and Acknowledgments197028
|
||||
Node: Index202036
|
||||
Node: Key Index228686
|
||||
Node: Introduction10362
|
||||
Node: Summary10777
|
||||
Node: Installation13689
|
||||
Node: Activation15067
|
||||
Node: Feedback16316
|
||||
Node: Document structure17085
|
||||
Node: Outlines17859
|
||||
Node: Headlines18519
|
||||
Node: Visibility cycling19142
|
||||
Ref: Visibility cycling-Footnote-120617
|
||||
Ref: Visibility cycling-Footnote-220675
|
||||
Node: Motion20725
|
||||
Node: Structure editing21509
|
||||
Node: Archiving23825
|
||||
Node: ARCHIVE tag24383
|
||||
Node: Moving subtrees26176
|
||||
Node: Sparse trees27217
|
||||
Ref: Sparse trees-Footnote-129348
|
||||
Ref: Sparse trees-Footnote-229440
|
||||
Node: Plain lists29555
|
||||
Ref: Plain lists-Footnote-133080
|
||||
Ref: Plain lists-Footnote-233437
|
||||
Node: Tables33619
|
||||
Node: Built-in table editor34167
|
||||
Node: Narrow columns41775
|
||||
Ref: Narrow columns-Footnote-143714
|
||||
Node: Table calculations43760
|
||||
Node: Formula syntax45080
|
||||
Ref: Formula syntax-Footnote-147985
|
||||
Node: Lisp formulas48285
|
||||
Node: Column formulas49074
|
||||
Node: Advanced features50836
|
||||
Node: Named-field formulas54090
|
||||
Node: Editing/debugging formulas54730
|
||||
Node: Appetizer56488
|
||||
Node: orgtbl-mode57591
|
||||
Node: table.el58082
|
||||
Node: Hyperlinks59059
|
||||
Node: Link format59832
|
||||
Node: Internal links61125
|
||||
Ref: Internal links-Footnote-163114
|
||||
Node: Radio targets63246
|
||||
Node: CamelCase links63961
|
||||
Node: External links64555
|
||||
Node: Handling links66686
|
||||
Ref: Handling links-Footnote-171338
|
||||
Ref: Handling links-Footnote-271575
|
||||
Node: Link abbreviations71649
|
||||
Node: Search options73328
|
||||
Ref: Search options-Footnote-175106
|
||||
Node: Custom searches75187
|
||||
Node: Remember76235
|
||||
Node: TODO items79925
|
||||
Node: TODO basics80907
|
||||
Node: TODO extensions82434
|
||||
Node: Workflow states83229
|
||||
Node: TODO types84097
|
||||
Ref: TODO types-Footnote-185755
|
||||
Node: Per file keywords85837
|
||||
Ref: Per file keywords-Footnote-187291
|
||||
Node: Priorities87492
|
||||
Node: Breaking down tasks88736
|
||||
Ref: Breaking down tasks-Footnote-189256
|
||||
Node: Checkboxes89352
|
||||
Node: Timestamps92088
|
||||
Node: Time stamps92549
|
||||
Ref: Time stamps-Footnote-196038
|
||||
Node: Creating timestamps96154
|
||||
Node: The date/time prompt98779
|
||||
Ref: The date/time prompt-Footnote-1100472
|
||||
Node: Custom time format100578
|
||||
Node: Progress logging102137
|
||||
Node: Closing items102666
|
||||
Node: Clocking work time103570
|
||||
Ref: Clocking work time-Footnote-1107196
|
||||
Node: Tags107322
|
||||
Node: Tag inheritance108084
|
||||
Node: Setting tags109021
|
||||
Ref: Setting tags-Footnote-1112537
|
||||
Ref: Setting tags-Footnote-2112649
|
||||
Node: Tag searches112729
|
||||
Node: Agenda views114729
|
||||
Node: Agenda files116822
|
||||
Ref: Agenda files-Footnote-1117782
|
||||
Ref: Agenda files-Footnote-2117931
|
||||
Node: Agenda dispatcher118124
|
||||
Node: Weekly/Daily agenda119741
|
||||
Node: Calendar/Diary integration120706
|
||||
Node: Global TODO list122044
|
||||
Node: Matching headline tags124204
|
||||
Node: Timeline125262
|
||||
Node: Presentation and sorting125925
|
||||
Node: Categories126703
|
||||
Node: Time-of-day specifications127367
|
||||
Node: Sorting of agenda items129345
|
||||
Node: Agenda commands130627
|
||||
Node: Custom agenda views136515
|
||||
Node: Storing searches137190
|
||||
Node: Block agenda139102
|
||||
Node: Setting Options140332
|
||||
Node: Batch processing143044
|
||||
Node: Embedded LaTeX144174
|
||||
Ref: Embedded LaTeX-Footnote-1145266
|
||||
Node: Math symbols145456
|
||||
Node: Subscripts and Superscripts146221
|
||||
Node: LaTeX fragments147065
|
||||
Ref: LaTeX fragments-Footnote-1149173
|
||||
Node: Processing LaTeX fragments149435
|
||||
Node: CDLaTeX mode150381
|
||||
Ref: CDLaTeX mode-Footnote-1152865
|
||||
Node: Exporting153013
|
||||
Node: ASCII export154327
|
||||
Node: HTML export155617
|
||||
Node: XOXO export158453
|
||||
Node: iCalendar export158892
|
||||
Node: Text interpretation160715
|
||||
Node: Comment lines161194
|
||||
Node: Enhancing text161665
|
||||
Node: Export options163357
|
||||
Node: Publishing165024
|
||||
Ref: Publishing-Footnote-1165820
|
||||
Node: Configuration166016
|
||||
Node: Project alist166734
|
||||
Node: Sources and destinations167800
|
||||
Node: Selecting files168530
|
||||
Node: Publishing action169278
|
||||
Node: Publishing options170511
|
||||
Node: Publishing links172663
|
||||
Node: Project page index174176
|
||||
Node: Sample configuration174954
|
||||
Node: Simple example175446
|
||||
Node: Complex example176119
|
||||
Node: Triggering publication178195
|
||||
Node: Miscellaneous178880
|
||||
Node: Completion179514
|
||||
Node: Customization180985
|
||||
Node: In-buffer settings181570
|
||||
Node: The very busy C-c C-c key185190
|
||||
Node: Clean view186834
|
||||
Node: TTY keys189411
|
||||
Node: Interaction191020
|
||||
Node: Cooperation191417
|
||||
Node: Conflicts193284
|
||||
Node: Bugs194876
|
||||
Node: Extensions and Hacking196499
|
||||
Node: Extensions196985
|
||||
Node: Dynamic blocks198555
|
||||
Node: History and Acknowledgments200482
|
||||
Node: Index205490
|
||||
Node: Key Index232505
|
||||
|
||||
End Tag Table
|
||||
|
|
|
@ -8,7 +8,8 @@
|
|||
(autoload 'turn-on-orgtbl "org" "Org tables as a minor mode.")
|
||||
(autoload 'org-cycle "org" "Subtree visibility cycling." t)
|
||||
(autoload 'org-global-cycle "org" "Global visibility cycling." t)
|
||||
(autoload 'org-agenda-list "org" "Produce calendar-loke agenda view." t)
|
||||
(autoload 'org-agenda-list "org" "Produce calendar-like agenda view." t)
|
||||
(autoload 'org-cycle-agenda-files "org" "Cycle through agenda-files." t)
|
||||
(autoload 'org-todo-list "org" "Produce global TODO list." t)
|
||||
(autoload 'org-tags-view "org" "Produce global TAGS agenda view." t)
|
||||
(autoload 'org-remember-annotation "org")
|
||||
|
|
|
@ -0,0 +1,860 @@
|
|||
;;; org-mouse.el --- Better mouse support for org-mode
|
||||
|
||||
;; Copyright (c) 2006 Piotr Zielinski
|
||||
;;
|
||||
;; Author: Piotr Zielinski <piotr dot zielinski at gmail dot com>
|
||||
;; Version: 0.18
|
||||
;; $Id: org-mouse.el 254 2006-10-26 21:15:52Z pz215 $
|
||||
;;
|
||||
;; The latest version of this file is available from
|
||||
;;
|
||||
;; http://www.cl.cam.ac.uk/~pz215/files/org-mouse.el
|
||||
;;
|
||||
;; This file is *NOT* part of GNU Emacs.
|
||||
;; This file is distributed under the same terms as GNU Emacs.
|
||||
|
||||
;; This program is free software; you can redistribute it and/or
|
||||
;; modify it under the terms of the GNU General Public License as
|
||||
;; published by the Free Software Foundation; either version 2 of
|
||||
;; the License, or (at your option) any later version.
|
||||
|
||||
;; This program is distributed in the hope that it will be
|
||||
;; useful, but WITHOUT ANY WARRANTY; without even the implied
|
||||
;; warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
|
||||
;; PURPOSE. See the GNU General Public License for more details.
|
||||
|
||||
;; You should have received a copy of the GNU General Public
|
||||
;; License along with this program; if not, write to the Free
|
||||
;; Software Foundation, Inc., 59 Temple Place, Suite 330, Boston,
|
||||
;; MA 02111-1307 USA
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
;;
|
||||
;;; Commentary:
|
||||
;;
|
||||
;; Org-mouse provides better mouse support for org-mode. Org-mode is
|
||||
;; a mode for keeping notes, maintaining ToDo lists, and doing project
|
||||
;; planning with a fast and effective plain-text system. It is
|
||||
;; available from
|
||||
;;
|
||||
;; http://staff.science.uva.nl/~dominik/Tools/org/
|
||||
;;
|
||||
;; Org-mouse implements the following features:
|
||||
;; * following links with the left mouse button (in Emacs 22)
|
||||
;; * subtree expansion/collapse (org-cycle) with the left mouse button
|
||||
;; * several context menus on the right mouse button:
|
||||
;; + general text
|
||||
;; + headlines
|
||||
;; + timestamps
|
||||
;; + priorities
|
||||
;; + links
|
||||
;; + tags
|
||||
;; * promoting/demoting/moving subtrees with mouse-3
|
||||
;; + if the drag starts and ends in the same line then promote/demote
|
||||
;; + otherwise move the subtree
|
||||
;; * date/time extraction from selected text (requires a python script)
|
||||
;; (eg. select text from your email and click "Add Appointment")
|
||||
;;
|
||||
;; The python script that automatically extracts date/time information
|
||||
;; from a piece of English text is available from:
|
||||
;;
|
||||
;; http://www.cl.cam.ac.uk/~pz215/files/timeparser.py
|
||||
;;
|
||||
;; Use
|
||||
;; ------------
|
||||
;;
|
||||
;; To use this package, put the following line in your .emacs:
|
||||
;;
|
||||
;; (require 'org-mouse)
|
||||
;;
|
||||
;; Tested with Emacs 22.0.50, org-mode 4.33
|
||||
|
||||
;; Fixme:
|
||||
;; + deal with folding / unfolding issues
|
||||
|
||||
;; TODO (This list is only theoretical, if you'd like to have some
|
||||
;; feature implemented or a bug fix please send me an email, even if
|
||||
;; something similar appears in the list below. This will help me get
|
||||
;; the priorities right.):
|
||||
|
||||
;; + The "New Appointment" menu entry seems out of place. Remove it
|
||||
;; and enhance the time/data selection function so that if the text
|
||||
;; in the clipboard contains a date/time, then set that date as the
|
||||
;; default (instead of "today")
|
||||
|
||||
;; + org-store-link, insert link
|
||||
;; + org tables
|
||||
;; + occur with the current word/tag (same menu item)
|
||||
;; + ctrl-c ctrl-c, for example, renumber the current list
|
||||
;; + internal links
|
||||
|
||||
;; Please email me with new feature suggestions / bugs
|
||||
|
||||
;; History:
|
||||
;;
|
||||
;; Version 0.19
|
||||
;; + added support for dragging URLs to the org-buffer
|
||||
;;
|
||||
;; Version 0.18
|
||||
;; + added support for agenda blocks
|
||||
;;
|
||||
;; Version 0.17
|
||||
;; + toggle checkboxes with a single click
|
||||
;;
|
||||
;; Version 0.16
|
||||
;; + added support for checkboxes
|
||||
;;
|
||||
;; Version 0.15
|
||||
;; + org-mode now works with the Agenda buffer as well
|
||||
;;
|
||||
;; Version 0.14
|
||||
;; + added a menu option that converts plain list items to outline items
|
||||
;;
|
||||
;; Version 0.13
|
||||
;; + "Insert Heading" now inserts a sibling heading if the point is
|
||||
;; on "***" and a child heading otherwise
|
||||
;;
|
||||
;; Version 0.12
|
||||
;; + compatible with Emacs 21
|
||||
;; + custom agenda commands added to the main menu
|
||||
;; + moving trees should now work between windows in the same frame
|
||||
;;
|
||||
;; Version 0.11
|
||||
;; + fixed org-mouse-at-link (thanks to Carsten)
|
||||
;; + removed [follow-link] bindings
|
||||
;;
|
||||
;; Version 0.10
|
||||
;; + added a menu option to remove highlights
|
||||
;; + compatible with org-mode 4.21 now
|
||||
;;
|
||||
;; Version 0.08:
|
||||
;; + trees can be moved/promoted/demoted by dragging with the right
|
||||
;; mouse button (mouse-3)
|
||||
;; + small changes in the above function
|
||||
;;
|
||||
;; Versions 0.01 -- 0.07: (I don't remember)
|
||||
|
||||
(eval-when-compile (require 'cl))
|
||||
|
||||
(defvar org-mouse-plain-list-regexp "\\([ \t]*\\)\\([-+*]\\|[0-9]+[.)]\\) ")
|
||||
(defvar org-mouse-direct t)
|
||||
|
||||
(defgroup org-mouse nil
|
||||
"Org-mouse"
|
||||
:tag "Org Mouse."
|
||||
:group 'org)
|
||||
|
||||
(defcustom org-mouse-punctuation ":"
|
||||
""
|
||||
:group 'org-mouse
|
||||
:type 'string)
|
||||
|
||||
|
||||
(defun org-mouse-re-search-line (regexp)
|
||||
"Searches the current line for a given regular expression."
|
||||
(beginning-of-line)
|
||||
(re-search-forward regexp (point-at-eol) t))
|
||||
|
||||
(defun org-mouse-end-headline ()
|
||||
"Go to the end of current headline (ignoring tags)."
|
||||
(interactive)
|
||||
(end-of-line)
|
||||
(skip-chars-backward "\t ")
|
||||
(when (looking-back ":[A-Za-z]+:")
|
||||
(skip-chars-backward ":A-Za-z")
|
||||
(skip-chars-backward "\t ")))
|
||||
|
||||
|
||||
(defun org-mouse-show-context-menu (event prefix)
|
||||
(interactive "@e \nP")
|
||||
(if (and (= (event-click-count event) 1)
|
||||
(or (not mark-active)
|
||||
(sit-for (/ double-click-time 1000.0))))
|
||||
(progn
|
||||
(select-window (posn-window (event-start event)))
|
||||
(goto-char (posn-point (event-start event)))
|
||||
(when (not (eolp)) (save-excursion (run-hooks 'post-command-hook)))
|
||||
(let ((redisplay-dont-pause t))
|
||||
(sit-for 0))
|
||||
(if (functionp org-mouse-context-menu-function)
|
||||
(funcall org-mouse-context-menu-function)
|
||||
(mouse-major-mode-menu event prefix))
|
||||
)
|
||||
(setq this-command 'mouse-save-then-kill)
|
||||
(mouse-save-then-kill event)))
|
||||
|
||||
|
||||
(defun org-mouse-line-position ()
|
||||
"Returns :beginning :middle :end"
|
||||
(cond
|
||||
((eolp) :end)
|
||||
((org-mouse-bolp) :begin)
|
||||
(t :middle)))
|
||||
|
||||
(defun org-mouse-empty-line ()
|
||||
(save-excursion (beginning-of-line) (looking-at "[ \t]*$")))
|
||||
|
||||
(defun org-mouse-next-heading ()
|
||||
"Goes to the next heading and if there is none, it ensures that the point is at the beginning of an empty line."
|
||||
(unless (outline-next-heading)
|
||||
(beginning-of-line)
|
||||
(unless (org-mouse-empty-line)
|
||||
(end-of-line)
|
||||
(newline))))
|
||||
|
||||
(defun org-mouse-insert-heading ()
|
||||
(interactive)
|
||||
(case (org-mouse-line-position)
|
||||
(:begin (beginning-of-line)
|
||||
(org-insert-heading))
|
||||
(t (org-mouse-next-heading)
|
||||
(org-insert-heading))))
|
||||
|
||||
(defun org-mouse-timestamp-today (&optional shift units)
|
||||
(interactive)
|
||||
(flet ((org-read-date (x &optional y) (current-time)))
|
||||
(org-time-stamp nil))
|
||||
(when shift
|
||||
(org-timestamp-change shift units)))
|
||||
|
||||
(defun org-mouse-keyword-menu (keywords function &optional selected itemformat)
|
||||
(mapcar
|
||||
(lambda (keyword)
|
||||
(vector (cond
|
||||
((functionp itemformat) (funcall itemformat keyword))
|
||||
((stringp itemformat) (format itemformat keyword))
|
||||
(t keyword))
|
||||
`(funcall ,function ,keyword)
|
||||
:style (cond
|
||||
((null selected) t)
|
||||
((functionp selected) 'toggle)
|
||||
(t 'radio))
|
||||
:selected `(if (functionp ,selected)
|
||||
(funcall ,selected ,keyword)
|
||||
(equal ,selected ,keyword))))
|
||||
keywords))
|
||||
|
||||
(defun org-mouse-remove-match-and-spaces ()
|
||||
(interactive)
|
||||
(replace-match "")
|
||||
(when (looking-at " +")
|
||||
(replace-match "")))
|
||||
|
||||
|
||||
(defun org-mouse-keyword-replace-menu (keywords &optional group itemformat)
|
||||
(setq group (or group 0))
|
||||
(append
|
||||
(org-mouse-keyword-menu
|
||||
keywords
|
||||
`(lambda (keyword) (replace-match keyword t t nil ,group))
|
||||
`(match-string ,group)
|
||||
itemformat)
|
||||
'(["None" org-mouse-remove-match-and-spaces t])))
|
||||
|
||||
(defvar org-mouse-context-menu-function nil)
|
||||
(make-variable-buffer-local 'org-mouse-context-menu-function)
|
||||
|
||||
(defun org-mouse-show-headlines ()
|
||||
(interactive)
|
||||
(let ((this-command 'org-cycle)
|
||||
(last-command 'org-cycle)
|
||||
(org-cycle-global-status nil))
|
||||
(org-cycle '(4))
|
||||
(org-cycle '(4))))
|
||||
|
||||
(defun org-mouse-show-overview ()
|
||||
(interactive)
|
||||
(let ((org-cycle-global-status nil))
|
||||
(org-cycle '(4))))
|
||||
|
||||
(defun org-mouse-set-priority (priority)
|
||||
(flet ((read-char-exclusive () priority))
|
||||
(org-priority)))
|
||||
|
||||
(defvar org-mouse-priority-regexp "\\[#\\([A-Z]\\)\\]"
|
||||
"Regular expression matching the priority indicator. Differs from `org-priority-regexp' in that it doesn't contain the leading '.*?'.")
|
||||
|
||||
|
||||
(defun org-mouse-get-priority (&optional default)
|
||||
(save-excursion
|
||||
(if (org-mouse-re-search-line org-mouse-priority-regexp)
|
||||
(match-string 1)
|
||||
(when default (char-to-string org-default-priority)))))
|
||||
|
||||
(defun org-mouse-at-link ()
|
||||
(and (eq (get-text-property (point) 'face) 'org-link)
|
||||
(save-excursion
|
||||
(goto-char (previous-single-property-change (point) 'face))
|
||||
(or (looking-at org-bracket-link-regexp)
|
||||
(looking-at org-angle-link-re)
|
||||
(looking-at org-plain-link-re)))))
|
||||
|
||||
|
||||
(defun org-mouse-delete-timestamp ()
|
||||
"Deletes the current timestamp as well as the preceding
|
||||
SCHEDULED: or DEADLINE: or ANYTHINGLIKETHIS:"
|
||||
(when (or (org-at-date-range-p) (org-at-timestamp-p))
|
||||
(replace-match "") ; delete the timestamp
|
||||
(skip-chars-backward " :A-Z")
|
||||
(when (looking-at " *[A-Z][A-Z]+:")
|
||||
(replace-match ""))))
|
||||
|
||||
(defun org-mouse-looking-at (regexp skipchars &optional movechars)
|
||||
(save-excursion
|
||||
(let ((point (point)))
|
||||
(if (looking-at regexp) t
|
||||
(skip-chars-backward skipchars)
|
||||
(forward-char (or movechars 0))
|
||||
(when (looking-at regexp)
|
||||
(> (match-end 0) point))))))
|
||||
|
||||
|
||||
(defun org-mouse-priority-list ()
|
||||
(let ((ret) (current org-lowest-priority))
|
||||
(while (>= current ?A)
|
||||
(push (char-to-string current) ret)
|
||||
(decf current))
|
||||
ret))
|
||||
|
||||
(defun org-mouse-tag-menu () ;todo
|
||||
(append
|
||||
(let ((tags (org-split-string (org-get-tags) ":")))
|
||||
(org-mouse-keyword-menu
|
||||
(sort (mapcar 'car (org-get-buffer-tags)) 'string-lessp)
|
||||
`(lambda (tag)
|
||||
(org-mouse-set-tags
|
||||
(sort (if (member tag (quote ,tags))
|
||||
(delete tag (quote ,tags))
|
||||
(cons tag (quote ,tags)))
|
||||
'string-lessp)))
|
||||
`(lambda (tag) (member tag (quote ,tags)))
|
||||
))
|
||||
'("--"
|
||||
["Align Tags Here" (org-set-tags nil t) t]
|
||||
["Align Tags in Buffer" (org-set-tags t t) t]
|
||||
["Set Tags ..." (org-set-tags) t])))
|
||||
|
||||
|
||||
|
||||
(defun org-mouse-set-tags (tags)
|
||||
(save-excursion
|
||||
;; remove existing tags first
|
||||
(beginning-of-line)
|
||||
(when (org-mouse-re-search-line ":\\(\\([A-Za-z_]+:\\)+\\)")
|
||||
(replace-match ""))
|
||||
|
||||
;; set new tags if any
|
||||
(when tags
|
||||
(end-of-line)
|
||||
(insert " :" (mapconcat 'identity tags ":") ":")
|
||||
(org-set-tags nil t))))
|
||||
|
||||
(defun org-mouse-insert-checkbox ()
|
||||
(interactive)
|
||||
(and (org-at-item-p)
|
||||
(goto-char (match-end 0))
|
||||
(unless (org-at-item-checkbox-p)
|
||||
(delete-horizontal-space)
|
||||
(insert " [ ] "))))
|
||||
|
||||
(defun org-mouse-agenda-type (type)
|
||||
(case type
|
||||
('tags "Tags: ")
|
||||
('todo "TODO: ")
|
||||
('tags-tree "Tags tree: ")
|
||||
('todo-tree "TODO tree: ")
|
||||
('occur-tree "Occur tree: ")
|
||||
(t "Agenda command ???")))
|
||||
|
||||
|
||||
(defun org-mouse-clip-text (text maxlength)
|
||||
(if (> (length text) maxlength)
|
||||
(concat (substring text 0 (- maxlength 3)) "...")
|
||||
text))
|
||||
|
||||
(defun org-mouse-popup-global-menu ()
|
||||
(popup-menu
|
||||
`("Main Menu"
|
||||
["Show Overview" org-mouse-show-overview t]
|
||||
["Show Headlines" org-mouse-show-headlines t]
|
||||
["Show All" show-all t]
|
||||
["Remove Highlights" org-remove-occur-highlights
|
||||
:visible org-occur-highlights]
|
||||
"--"
|
||||
["Check Deadlines"
|
||||
(if (functionp 'org-check-deadlines-and-todos)
|
||||
(org-check-deadlines-and-todos org-deadline-warning-days)
|
||||
(org-check-deadlines org-deadline-warning-days)) t]
|
||||
["Check TODOs" org-show-todo-tree t]
|
||||
("Check Tags"
|
||||
,@(org-mouse-keyword-menu
|
||||
(sort (mapcar 'car (org-get-buffer-tags)) 'string-lessp)
|
||||
'(lambda (tag) (org-tags-sparse-tree nil tag)))
|
||||
"--"
|
||||
["Custom Tag ..." org-tags-sparse-tree t])
|
||||
["Check Phrase ..." org-occur]
|
||||
"--"
|
||||
["Display Agenda" org-agenda-list t]
|
||||
["Display Timeline" org-timeline t]
|
||||
["Display TODO List" org-todo-list t]
|
||||
("Display Tags"
|
||||
,@(org-mouse-keyword-menu
|
||||
(sort (mapcar 'car (org-get-buffer-tags)) 'string-lessp)
|
||||
'(lambda (tag) (org-tags-view nil tag)))
|
||||
"--"
|
||||
["Custom Tag ..." org-tags-view t])
|
||||
["Display Calendar" org-goto-calendar t]
|
||||
"--"
|
||||
;; ("Custom Commands"
|
||||
;; ,@(org-mouse-keyword-menu
|
||||
;; (mapcar 'car org-agenda-custom-commands)
|
||||
;; '(lambda (key)
|
||||
;; (eval `(flet ((read-char-exclusive () (string-to-char ,key)))
|
||||
;; (let ((current-prefix-arg t))
|
||||
;; (org-agenda nil)))))
|
||||
;; nil "Agenda (TODO) '%s'")
|
||||
;; "--"
|
||||
,@(org-mouse-keyword-menu
|
||||
(mapcar 'car org-agenda-custom-commands)
|
||||
'(lambda (key)
|
||||
(eval `(flet ((read-char-exclusive () (string-to-char ,key)))
|
||||
(org-agenda nil))))
|
||||
nil
|
||||
'(lambda (key)
|
||||
(let ((entry (assoc key org-agenda-custom-commands)))
|
||||
(org-mouse-clip-text
|
||||
(cond
|
||||
((stringp (nth 1 entry)) (nth 1 entry))
|
||||
((stringp (nth 2 entry))
|
||||
(concat (org-mouse-agenda-type (nth 1 entry))
|
||||
(nth 2 entry)))
|
||||
(t "Agenda Command '%s'"))
|
||||
30))))
|
||||
;; )
|
||||
"--"
|
||||
["Delete Blank Lines" delete-blank-lines
|
||||
:visible (org-mouse-empty-line)]
|
||||
["Insert Checkbox" org-mouse-insert-checkbox
|
||||
:visible (and (org-at-item-p) (not (org-at-item-checkbox-p)))]
|
||||
["Insert Checkboxes"
|
||||
(org-mouse-for-each-item 'org-mouse-insert-checkbox)
|
||||
:visible (and (org-at-item-p) (not (org-at-item-checkbox-p)))]
|
||||
["Plain List to Outline" org-mouse-transform-to-outline
|
||||
:visible (org-at-item-p)])))
|
||||
|
||||
|
||||
; ["Jump" org-goto])))
|
||||
|
||||
(defun org-mouse-get-context (contextlist context)
|
||||
(let ((contextdata (find-if (lambda (x) (eq (car x) context)) contextlist)))
|
||||
(when contextdata
|
||||
(save-excursion
|
||||
(goto-char (nth 1 contextdata))
|
||||
; (looking-at regexp)))))
|
||||
(re-search-forward ".*" (nth 2 contextdata))))))
|
||||
|
||||
(defun org-mouse-for-each-item (function)
|
||||
(save-excursion
|
||||
(ignore-errors
|
||||
(while t (org-previous-item)))
|
||||
(ignore-errors
|
||||
(while t
|
||||
(funcall function)
|
||||
(org-next-item)))))
|
||||
|
||||
(defun org-mouse-bolp ()
|
||||
"Returns true if there only spaces, tabs, and '*', between the beginning of line and the point"
|
||||
(save-excursion
|
||||
(skip-chars-backward " \t*") (bolp)))
|
||||
|
||||
|
||||
(defadvice dnd-insert-text (around org-mouse-dnd-insert-text activate)
|
||||
(if (eq major-mode 'org-mode)
|
||||
(case (org-mouse-line-position)
|
||||
(:begin ; insert before
|
||||
(beginning-of-line)
|
||||
(looking-at "[ \t]*")
|
||||
(open-line 1)
|
||||
(indent-to (- (match-end 0) (match-beginning 0)))
|
||||
(insert "+ "))
|
||||
|
||||
(:middle ; insert after
|
||||
(end-of-line)
|
||||
(newline t)
|
||||
(indent-relative)
|
||||
(insert "+ "))
|
||||
|
||||
(:end ; insert text here
|
||||
(skip-chars-backward " \t")
|
||||
(kill-region (point) (point-at-eol))
|
||||
(unless (looking-back org-mouse-punctuation)
|
||||
(insert (concat org-mouse-punctuation " "))))
|
||||
|
||||
(insert text)
|
||||
(beginning-of-line))
|
||||
ad-do-it))
|
||||
|
||||
(defun org-mouse-context-menu ()
|
||||
(let ((stamp-prefixes (list org-deadline-string org-scheduled-string))
|
||||
(contextlist (org-context)))
|
||||
(flet ((get-context (context) (org-mouse-get-context contextlist context)))
|
||||
(cond
|
||||
((or (eolp)
|
||||
(and (looking-at " \\|\t") (looking-back " \\|\t")))
|
||||
(org-mouse-popup-global-menu))
|
||||
;; ((get-context :todo-keyword)
|
||||
((get-context :checkbox)
|
||||
(popup-menu
|
||||
'(nil
|
||||
["Toggle" org-toggle-checkbox t]
|
||||
["Remove" org-mouse-remove-match-and-spaces t]
|
||||
""
|
||||
["All Clear" (org-mouse-for-each-item
|
||||
(lambda ()
|
||||
(when (save-excursion (org-at-item-checkbox-p))
|
||||
(replace-match "[ ]"))))]
|
||||
["All Set" (org-mouse-for-each-item
|
||||
(lambda ()
|
||||
(when (save-excursion (org-at-item-checkbox-p))
|
||||
(replace-match "[X]"))))]
|
||||
["All Toggle" (org-mouse-for-each-item 'org-toggle-checkbox) t]
|
||||
["All Remove" (org-mouse-for-each-item
|
||||
(lambda ()
|
||||
(when (save-excursion (org-at-item-checkbox-p))
|
||||
(org-mouse-remove-match-and-spaces))))]
|
||||
)))
|
||||
((and (org-mouse-looking-at "\\b\\w+" "a-zA-Z0-9_")
|
||||
(member (match-string 0) org-todo-keywords))
|
||||
(popup-menu
|
||||
`(nil
|
||||
,@(org-mouse-keyword-replace-menu org-todo-keywords)
|
||||
"--"
|
||||
["Check TODOs" org-show-todo-tree t]
|
||||
["Display TODO List" org-todo-list t]
|
||||
)))
|
||||
((and (org-mouse-looking-at "\\b[A-Z]+:" "A-Z")
|
||||
(member (match-string 0) stamp-prefixes))
|
||||
(popup-menu
|
||||
`(nil
|
||||
,@(org-mouse-keyword-replace-menu stamp-prefixes)
|
||||
"--"
|
||||
["Check Deadlines" org-check-deadlines t]
|
||||
)))
|
||||
((org-mouse-looking-at org-mouse-priority-regexp "[]A-Z#") ; priority
|
||||
(popup-menu `(nil ,@(org-mouse-keyword-replace-menu
|
||||
(org-mouse-priority-list) 1 "Priority %s"))))
|
||||
((org-mouse-at-link)
|
||||
(popup-menu
|
||||
'(nil
|
||||
["Open" org-open-at-point t]
|
||||
["Open in Emacs" (org-open-at-point t) t]
|
||||
"--"
|
||||
["Copy link" (kill-new (match-string 0))]
|
||||
["Cut link" (kill-region (match-beginning 0) (match-end 0))]
|
||||
; ["Paste file link" ((insert "file:") (yank))]
|
||||
)))
|
||||
((org-mouse-looking-at ":\\([A-Za-z0-9_]+\\):" "A-Za-z0-9_" -1) ;tags
|
||||
(popup-menu
|
||||
`(nil
|
||||
[,(format "Display '%s'" (match-string 1))
|
||||
(org-tags-view nil ,(match-string 1))]
|
||||
[,(format "Narrow to '%s'" (match-string 1))
|
||||
(org-tags-sparse-tree nil ,(match-string 1))]
|
||||
"--"
|
||||
,@(org-mouse-tag-menu))))
|
||||
((org-at-timestamp-p)
|
||||
(popup-menu
|
||||
'(nil
|
||||
["Show Day" org-open-at-point t]
|
||||
["Change Timestamp" org-time-stamp t]
|
||||
["Delete Timestamp" (org-mouse-delete-timestamp) t]
|
||||
["Compute Time Range" org-evaluate-time-range (org-at-date-range-p)]
|
||||
"--"
|
||||
["Set for Today" org-mouse-timestamp-today]
|
||||
["Set for Tomorrow" (org-mouse-timestamp-today 1 'day)]
|
||||
["Set in 1 Week" (org-mouse-timestamp-today 7 'day)]
|
||||
["Set in 2 Weeks" (org-mouse-timestamp-today 14 'day)]
|
||||
["Set in a Month" (org-mouse-timestamp-today 1 'month)]
|
||||
"--"
|
||||
["+ 1 Day" (org-timestamp-change 1 'day)]
|
||||
["+ 1 Week" (org-timestamp-change 7 'day)]
|
||||
["+ 1 Month" (org-timestamp-change 1 'month)]
|
||||
"--"
|
||||
["- 1 Day" (org-timestamp-change -1 'day)]
|
||||
["- 1 Week" (org-timestamp-change -7 'day)]
|
||||
["- 1 Month" (org-timestamp-change -1 'month)])))
|
||||
((and (assq :headline contextlist) (not (eolp)))
|
||||
(let ((priority (org-mouse-get-priority t)))
|
||||
(popup-menu
|
||||
`("Headline Menu"
|
||||
("Tags and Priorities"
|
||||
,@(org-mouse-keyword-menu
|
||||
(org-mouse-priority-list)
|
||||
'(lambda (keyword)
|
||||
(org-mouse-set-priority (string-to-char keyword)))
|
||||
priority "Priority %s")
|
||||
"--"
|
||||
,@(org-mouse-tag-menu))
|
||||
["Show Tags"
|
||||
(with-current-buffer org-mouse-main-buffer (org-agenda-show-tags))
|
||||
:visible (not org-mouse-direct)]
|
||||
["Show Priority"
|
||||
(with-current-buffer org-mouse-main-buffer (org-agenda-show-priority))
|
||||
:visible (not org-mouse-direct)]
|
||||
,@(if org-mouse-direct '("--") nil)
|
||||
["New Heading" org-mouse-insert-heading :visible org-mouse-direct]
|
||||
;; ["New Appointment" org-mouse-new-appointment :visible org-mouse-direct]
|
||||
;; "--"
|
||||
["Cycle TODO" org-todo]
|
||||
["Set Deadline"
|
||||
(progn (org-mouse-end-headline) (insert " ") (org-deadline))
|
||||
:active (not (save-excursion
|
||||
(org-mouse-re-search-line org-deadline-regexp)))]
|
||||
["Schedule Task"
|
||||
(progn (org-mouse-end-headline) (insert " ") (org-schedule))
|
||||
:active (not (save-excursion
|
||||
(org-mouse-re-search-line org-scheduled-regexp)))]
|
||||
["Insert Timestamp"
|
||||
(progn (org-mouse-end-headline) (insert " ") (org-time-stamp nil)) t]
|
||||
; ["Timestamp (inactive)" org-time-stamp-inactive t]
|
||||
"--"
|
||||
["Archive Subtree" org-archive-subtree]
|
||||
["Cut Subtree" org-cut-special]
|
||||
["Copy Subtree" org-copy-special]
|
||||
["Paste Subtree" org-paste-special :visible org-mouse-direct]
|
||||
"--"
|
||||
;; ["Promote Subtree" org-shiftmetaleft]
|
||||
;; ["Demote Subtree" org-shiftmetaright]
|
||||
;; ["Promote Heading" org-metaleft]
|
||||
;; ["Demote Heading" org-metaright]
|
||||
;; "--"
|
||||
["Move Trees" org-mouse-move-tree :active nil]
|
||||
))))
|
||||
(t
|
||||
(org-mouse-popup-global-menu))))))
|
||||
|
||||
|
||||
|
||||
;; (defun org-mouse-at-regexp (regexp)
|
||||
;; (save-excursion
|
||||
;; (let ((point (point))
|
||||
;; (bol (progn (beginning-of-line) (point)))
|
||||
;; (eol (progn (end-of-line) (point))))
|
||||
;; (goto-char point)
|
||||
;; (re-search-backward regexp bol 1)
|
||||
;; (and (not (eolp))
|
||||
;; (progn (forward-char)
|
||||
;; (re-search-forward regexp eol t))
|
||||
;; (<= (match-beginning 0) point)))))
|
||||
|
||||
(defun org-mouse-in-region-p (pos)
|
||||
(and mark-active (>= pos (region-beginning)) (< pos (region-end))))
|
||||
|
||||
(defun org-mouse-down-mouse (event)
|
||||
(interactive "e")
|
||||
(setq this-command last-command)
|
||||
(unless (and transient-mark-mode
|
||||
(= 1 (event-click-count event))
|
||||
(org-mouse-in-region-p (posn-point (event-start event))))
|
||||
(mouse-drag-region event)))
|
||||
|
||||
(add-hook 'org-mode-hook
|
||||
'(lambda ()
|
||||
(setq org-mouse-context-menu-function 'org-mouse-context-menu)
|
||||
|
||||
; (define-key org-mouse-map [follow-link] 'mouse-face)
|
||||
(define-key org-mouse-map (if (featurep 'xemacs) [button3] [mouse-3]) nil)
|
||||
(define-key org-mode-map [mouse-3] 'org-mouse-show-context-menu)
|
||||
(define-key org-mode-map [down-mouse-1] 'org-mouse-down-mouse)
|
||||
(define-key org-mouse-map [C-drag-mouse-1] 'org-mouse-move-tree)
|
||||
(define-key org-mouse-map [C-down-mouse-1] 'org-mouse-move-tree-start)
|
||||
(define-key org-mouse-map [drag-mouse-3] 'org-mouse-move-tree)
|
||||
(define-key org-mouse-map [down-mouse-3] 'org-mouse-move-tree-start)
|
||||
|
||||
(font-lock-add-keywords nil
|
||||
`((,outline-regexp
|
||||
0 `(face org-link mouse-face highlight keymap ,org-mouse-map)
|
||||
'prepend)
|
||||
("^[ \t]*\\([-+*]\\|[0-9]+[.)]\\) +"
|
||||
(1 `(face org-link keymap ,org-mouse-map mouse-face highlight) 'prepend))
|
||||
("^[ \t]*\\([-+*]\\|[0-9]+[.)]\\) +\\(\\[[ X]\\]\\)"
|
||||
(2 `(face bold keymap ,org-mouse-map mouse-face highlight) t)))
|
||||
t)
|
||||
|
||||
(defadvice org-open-at-point (around org-mouse-open-at-point activate)
|
||||
(let ((context (org-context)))
|
||||
(cond
|
||||
((assq :headline-stars context) (org-cycle))
|
||||
((assq :checkbox context) (org-toggle-checkbox))
|
||||
((assq :item-bullet context)
|
||||
(let ((org-cycle-include-plain-lists t)) (org-cycle)))
|
||||
(t ad-do-it))))))
|
||||
|
||||
(defun org-mouse-move-tree-start (event)
|
||||
(interactive "e")
|
||||
(message "Same line: promote/demote, (***):move before, (text): make a child"))
|
||||
|
||||
|
||||
(defun org-mouse-make-marker (position)
|
||||
(with-current-buffer (window-buffer (posn-window position))
|
||||
(copy-marker (posn-point position))))
|
||||
|
||||
(defun org-mouse-move-tree (event)
|
||||
;; todo: handle movements between different buffers
|
||||
(interactive "e")
|
||||
(save-excursion
|
||||
(let* ((start (org-mouse-make-marker (event-start event)))
|
||||
(end (org-mouse-make-marker (event-end event)))
|
||||
(sbuf (marker-buffer start))
|
||||
(ebuf (marker-buffer end)))
|
||||
|
||||
(when (and sbuf ebuf)
|
||||
(set-buffer sbuf)
|
||||
(goto-char start)
|
||||
(org-back-to-heading)
|
||||
(if (and (eq sbuf ebuf)
|
||||
(equal
|
||||
(point)
|
||||
(save-excursion (goto-char end) (org-back-to-heading) (point))))
|
||||
;; if the same line then promote/demote
|
||||
(if (>= end start) (org-demote-subtree) (org-promote-subtree))
|
||||
;; if different lines then move
|
||||
(org-cut-subtree)
|
||||
|
||||
(set-buffer ebuf)
|
||||
(goto-char end)
|
||||
(org-back-to-heading)
|
||||
(when (and (eq sbuf ebuf)
|
||||
(equal
|
||||
(point)
|
||||
(save-excursion (goto-char start)
|
||||
(org-back-to-heading) (point))))
|
||||
(outline-end-of-subtree)
|
||||
(end-of-line)
|
||||
(if (eobp) (newline) (forward-char)))
|
||||
|
||||
(when (looking-at outline-regexp)
|
||||
(let ((level (- (match-end 0) (match-beginning 0))))
|
||||
(when (> end (match-end 0))
|
||||
(outline-end-of-subtree)
|
||||
(end-of-line)
|
||||
(if (eobp) (newline) (forward-char))
|
||||
(setq level (1+ level)))
|
||||
(org-paste-subtree level)
|
||||
(save-excursion
|
||||
(outline-end-of-subtree)
|
||||
(when (bolp) (delete-char -1))))))))))
|
||||
|
||||
|
||||
(defun org-mouse-transform-to-outline ()
|
||||
(interactive)
|
||||
(org-back-to-heading)
|
||||
(let ((minlevel 1000)
|
||||
(replace-text (concat (match-string 0) "* ")))
|
||||
(beginning-of-line 2)
|
||||
(save-excursion
|
||||
(while (not (or (eobp) (looking-at outline-regexp)))
|
||||
(when (looking-at org-mouse-plain-list-regexp)
|
||||
(setq minlevel (min minlevel (- (match-end 1) (match-beginning 1)))))
|
||||
(forward-line)))
|
||||
(while (not (or (eobp) (looking-at outline-regexp)))
|
||||
(when (and (looking-at org-mouse-plain-list-regexp)
|
||||
(eq minlevel (- (match-end 1) (match-beginning 1))))
|
||||
(replace-match replace-text))
|
||||
(forward-line))))
|
||||
|
||||
|
||||
|
||||
(defun org-mouse-do-remotely (command)
|
||||
; (org-agenda-check-no-diary)
|
||||
(when (get-text-property (point) 'org-marker)
|
||||
(let* ((anticol (- (point-at-eol) (point)))
|
||||
(marker (get-text-property (point) 'org-marker))
|
||||
(buffer (marker-buffer marker))
|
||||
(pos (marker-position marker))
|
||||
(hdmarker (get-text-property (point) 'org-hd-marker))
|
||||
(buffer-read-only nil)
|
||||
(newhead "--- removed ---")
|
||||
(org-mouse-direct nil)
|
||||
(org-mouse-main-buffer (current-buffer)))
|
||||
(when (eq (with-current-buffer buffer major-mode) 'org-mode)
|
||||
(let ((endmarker (save-excursion
|
||||
(set-buffer buffer)
|
||||
(outline-end-of-subtree)
|
||||
(forward-char 1)
|
||||
(copy-marker (point)))))
|
||||
(with-current-buffer buffer
|
||||
(widen)
|
||||
(goto-char pos)
|
||||
(org-show-hidden-entry)
|
||||
(save-excursion
|
||||
(and (outline-next-heading)
|
||||
(org-flag-heading nil))) ; show the next heading
|
||||
(org-back-to-heading)
|
||||
(setq marker (copy-marker (point)))
|
||||
(goto-char (max (point-at-bol) (- (point-at-eol) anticol)))
|
||||
(funcall command)
|
||||
(unless (eq (marker-position marker) (marker-position endmarker))
|
||||
(setq newhead (org-get-heading))))
|
||||
|
||||
(beginning-of-line 1)
|
||||
(save-excursion
|
||||
(org-agenda-change-all-lines newhead hdmarker 'fixface)))
|
||||
t))))
|
||||
|
||||
(defun org-mouse-agenda-context-menu ()
|
||||
(or (org-mouse-do-remotely 'org-mouse-context-menu)
|
||||
(popup-menu
|
||||
'("Agenda"
|
||||
("Agenda Files")
|
||||
"--"
|
||||
["Rebuild Buffer" org-agenda-redo t]
|
||||
["New Diary Entry"
|
||||
org-agenda-diary-entry (org-agenda-check-type nil 'agenda 'timeline)]
|
||||
"--"
|
||||
["Goto Today" org-agenda-goto-today
|
||||
(org-agenda-check-type nil 'agenda 'timeline)]
|
||||
["Display Calendar" org-agenda-goto-calendar
|
||||
(org-agenda-check-type nil 'agenda 'timeline)]
|
||||
("Calendar Commands"
|
||||
["Phases of the Moon" org-agenda-phases-of-moon (org-agenda-check-type nil 'agenda 'timeline)]
|
||||
["Sunrise/Sunset" org-agenda-sunrise-sunset (org-agenda-check-type nil 'agenda 'timeline)]
|
||||
["Holidays" org-agenda-holidays (org-agenda-check-type nil 'agenda 'timeline)]
|
||||
["Convert" org-agenda-convert-date (org-agenda-check-type nil 'agenda 'timeline)]
|
||||
"--"
|
||||
["Create iCalendar file" org-export-icalendar-combine-agenda-files t])
|
||||
"--"
|
||||
["Day View" org-agenda-day-view
|
||||
:active (org-agenda-check-type nil 'agenda)
|
||||
:style radio :selected (equal org-agenda-ndays 1)]
|
||||
["Week View" org-agenda-week-view
|
||||
:active (org-agenda-check-type nil 'agenda)
|
||||
:style radio :selected (equal org-agenda-ndays 7)]
|
||||
"--"
|
||||
["Show Logbook entries" org-agenda-log-mode
|
||||
:style toggle :selected org-agenda-show-log
|
||||
:active (org-agenda-check-type nil 'agenda 'timeline)]
|
||||
["Include Diary" org-agenda-toggle-diary
|
||||
:style toggle :selected org-agenda-include-diary
|
||||
:active (org-agenda-check-type nil 'agenda)]
|
||||
["Use Time Grid" org-agenda-toggle-time-grid
|
||||
:style toggle :selected org-agenda-use-time-grid
|
||||
:active (org-agenda-check-type nil 'agenda)]
|
||||
["Follow Mode" org-agenda-follow-mode
|
||||
:style toggle :selected org-agenda-follow-mode]
|
||||
"--"
|
||||
["Quit" org-agenda-quit t]
|
||||
["Exit and Release Buffers" org-agenda-exit t]
|
||||
))))
|
||||
|
||||
|
||||
; (setq org-agenda-mode-hook nil)
|
||||
(add-hook 'org-agenda-mode-hook
|
||||
'(lambda ()
|
||||
; (define-key org-agenda-keymap [follow-link] 'mouse-face)
|
||||
(setq org-mouse-context-menu-function 'org-mouse-agenda-context-menu)
|
||||
(define-key org-agenda-keymap
|
||||
(if (featurep 'xemacs) [button3] [mouse-3]) 'org-mouse-show-context-menu)))
|
||||
|
||||
(provide 'org-mouse)
|
||||
|
143
org.texi
143
org.texi
|
@ -3,8 +3,8 @@
|
|||
@setfilename ../info/org
|
||||
@settitle Org Mode Manual
|
||||
|
||||
@set VERSION 4.52
|
||||
@set DATE October 2006
|
||||
@set VERSION 4.53
|
||||
@set DATE November 2006
|
||||
|
||||
@dircategory Emacs
|
||||
@direntry
|
||||
|
@ -170,11 +170,12 @@ Timestamps
|
|||
|
||||
* Time stamps:: Assigning a time to a tree entry
|
||||
* Creating timestamps:: Commands which insert timestamps
|
||||
* Custom time format:: If you cannot work with the ISO format
|
||||
* Progress logging:: Documenting when what work was done.
|
||||
|
||||
Creating timestamps
|
||||
|
||||
* The date/time prompt::
|
||||
* The date/time prompt:: How org-mode helps you entring date and time
|
||||
|
||||
Progress Logging
|
||||
|
||||
|
@ -316,6 +317,15 @@ structured ASCII file, as HTML, or (todo and agenda items only) as an
|
|||
iCalendar file. It can also serve as a publishing tool for a set of
|
||||
linked webpages.
|
||||
|
||||
An important design aspect that distinguishes Org-mode from other
|
||||
packages like Planner/Muse is that it encougages to store every piece of
|
||||
information only once. In Planner, you have project pages, day pages
|
||||
and possibly other files, duplicating some information such as tasks.
|
||||
In Org-mode, you only have notes files. In your notes you mark entries
|
||||
as tasks, label them with tags and timestamps. All necessary lists like
|
||||
a schedule for the day, the agenda for a meeting, tasks lists selected
|
||||
by tags etc are created dynamically when you need them.
|
||||
|
||||
Org-mode keeps simple things simple. When first fired up, it should
|
||||
feel like a straightforward, easy to use outliner. Complexity is not
|
||||
imposed, but a large amount of functionality is available when you need
|
||||
|
@ -328,12 +338,13 @@ example:
|
|||
@r{@bullet{} as an ASCII table editor with spreadsheet-like capabilities}
|
||||
@r{@bullet{} as a TODO list editor}
|
||||
@r{@bullet{} as a full agenda and planner with deadlines and work scheduling}
|
||||
@r{@bullet{} as an environment to implement David Allen's GTD system}
|
||||
@r{@bullet{} as a simple hypertext system, with HTML export}
|
||||
@r{@bullet{} as a publishing tool to create a set of interlinked webpages}
|
||||
@end example
|
||||
|
||||
The Org-mode table editor can be integrated into any major mode by
|
||||
activating the minor Orgtbl-mode.
|
||||
Org-mode's automatic, context sensitive table editor can be integrated
|
||||
into any major mode by activating the minor Orgtbl-mode.
|
||||
|
||||
@cindex FAQ
|
||||
There is a website for Org-mode which provides links to the newest
|
||||
|
@ -642,7 +653,9 @@ the middle of a line, the line is split and the rest of the line becomes
|
|||
the new headline. If the command is used at the beginning of a
|
||||
headline, the new headline is created before the current line. If at
|
||||
the beginning of any other line, the content of that line is made the
|
||||
new heading.
|
||||
new heading. If the command is used at the end of a folded subtree
|
||||
(i.e. behind the ellipses at the end of a headline), then a headline
|
||||
like the current one will be inserted after the end of the subtree.
|
||||
@kindex M-S-@key{RET}
|
||||
@item M-S-@key{RET}
|
||||
Insert new TODO entry with same level as current heading.
|
||||
|
@ -2441,6 +2454,7 @@ planning.
|
|||
@menu
|
||||
* Time stamps:: Assigning a time to a tree entry
|
||||
* Creating timestamps:: Commands which insert timestamps
|
||||
* Custom time format:: If you cannot work with the ISO format
|
||||
* Progress logging:: Documenting when what work was done.
|
||||
@end menu
|
||||
|
||||
|
@ -2454,10 +2468,12 @@ planning.
|
|||
@cindex scheduling
|
||||
|
||||
A time stamp is a specification of a date (possibly with time) in a
|
||||
special format, either @samp{<2003-09-16 Tue>} or @samp{<2003-09-16
|
||||
Tue 09:39>}. A time stamp can appear anywhere in the headline or body
|
||||
of an org-tree entry. Its presence allows entries to be shown on specific
|
||||
dates in the agenda (@pxref{Weekly/Daily agenda}). We distinguish:
|
||||
special format, either @samp{<2003-09-16 Tue>} or @samp{<2003-09-16 Tue
|
||||
09:39>}@footnote{This is the standard ISO date/time format. If you
|
||||
cannot get used to these, see @ref{Custom time format}}. A time stamp
|
||||
can appear anywhere in the headline or body of an org-tree entry. Its
|
||||
presence allows entries to be shown on specific dates in the agenda
|
||||
(@pxref{Weekly/Daily agenda}). We distinguish:
|
||||
|
||||
@table @var
|
||||
@item Plain time stamp
|
||||
|
@ -2468,6 +2484,21 @@ an event in a diary, when you want to take note of when something
|
|||
happened. In the timeline and agenda displays, the headline of an entry
|
||||
associated with a plain time stamp will be shown exactly on that date.
|
||||
|
||||
@example
|
||||
* Meet Peter at the movies <2006-11-01 Wed 19:15>
|
||||
@end example
|
||||
|
||||
@item Inactive time stamp
|
||||
@cindex timestamp, inactive
|
||||
@cindex inactive timestamp
|
||||
Just like a plain time stamp, but with square brackets instead of
|
||||
angular ones. These time stamps are inactive in the sense that thay do
|
||||
@emph{not} trigger an entry to show up in the agenda.
|
||||
|
||||
@example
|
||||
* Gillian comes late for the fifth time [2006-11-01 Wed]
|
||||
@end example
|
||||
|
||||
@item Time stamp range
|
||||
@cindex timerange
|
||||
Two time stamps connected by @samp{--} denote a time range. The
|
||||
|
@ -2524,7 +2555,7 @@ automatically into the file. The time stamps are enclosed in square
|
|||
brackets instead of angular brackets. @xref{Clocking work time}.
|
||||
@end table
|
||||
|
||||
@node Creating timestamps, Progress logging, Time stamps, Timestamps
|
||||
@node Creating timestamps, Custom time format, Time stamps, Timestamps
|
||||
@section Creating timestamps
|
||||
@cindex creating timestamps
|
||||
@cindex timestamps, creating
|
||||
|
@ -2563,8 +2594,8 @@ instead.
|
|||
|
||||
@kindex C-c C-o
|
||||
@item C-c C-o
|
||||
Access the agenda for the date given by the time stamp at point
|
||||
(@pxref{Weekly/Daily agenda}).
|
||||
Access the agenda for the date given by the time stamp or -range at
|
||||
point (@pxref{Weekly/Daily agenda}).
|
||||
|
||||
@kindex C-c C-d
|
||||
@item C-c C-d
|
||||
|
@ -2598,11 +2629,11 @@ CUA-mode (@pxref{Conflicts}).
|
|||
@kindex S-@key{down}
|
||||
@item S-@key{up}
|
||||
@itemx S-@key{down}
|
||||
Change the item under the cursor in a timestamp. The cursor can be on
|
||||
a year, month, day, hour or minute. Note that if the cursor is not at
|
||||
a time stamp, these same keys modify the priority of an item.
|
||||
(@pxref{Priorities}). The key bindings also conflict with CUA-mode
|
||||
(@pxref{Conflicts}).
|
||||
Change the item under the cursor in a timestamp. The cursor can be on a
|
||||
year, month, day, hour or minute. Note that if the cursor is in a
|
||||
headline and not at a time stamp, these same keys modify the priority of
|
||||
an item. (@pxref{Priorities}). The key bindings also conflict with
|
||||
CUA-mode (@pxref{Conflicts}).
|
||||
|
||||
|
||||
@kindex C-c C-y
|
||||
|
@ -2615,7 +2646,7 @@ into the following column).
|
|||
|
||||
|
||||
@menu
|
||||
* The date/time prompt::
|
||||
* The date/time prompt:: How org-mode helps you entring date and time
|
||||
@end menu
|
||||
|
||||
@node The date/time prompt, , Creating timestamps, Creating timestamps
|
||||
|
@ -2680,10 +2711,53 @@ One month forward.
|
|||
One month back.
|
||||
@kindex @key{RET}
|
||||
@item @key{RET}
|
||||
Choose date in calendar (only if nothing typed into minibuffer).
|
||||
Choose date in calendar (only if nothing was typed into minibuffer).
|
||||
@end table
|
||||
|
||||
@node Progress logging, , Creating timestamps, Timestamps
|
||||
@node Custom time format, Progress logging, Creating timestamps, Timestamps
|
||||
@section Custom time format
|
||||
@cindex custom date/time format
|
||||
@cindex time format, custom
|
||||
@cindex date format, custom
|
||||
|
||||
Org-mode uses the standard ISO notation for dates and times as it is
|
||||
defined in ISO 8601. If you cannot get used to this and require another
|
||||
representation of date and time to keep you happy, you can get it by
|
||||
customizing the variables @code{org-display-custom-times} and
|
||||
@code{org-time-stamp-custom-formats}.
|
||||
|
||||
@table @kbd
|
||||
@kindex C-c C-x C-t
|
||||
@item C-c C-x C-t
|
||||
Toggle the display of custom formats for dates and times.
|
||||
@end table
|
||||
|
||||
@noindent
|
||||
Org-mode needs the default format for scanning, so the custom date/time
|
||||
format does not @emph{replace} the default format - instead it is put
|
||||
@emph{over} the default format using text properties. This has the
|
||||
following consequences:
|
||||
@itemize @bullet
|
||||
@item
|
||||
You cannot place the cursor onto a time stamp anymore, only before or
|
||||
after.
|
||||
@item
|
||||
The @kbd{S-@key{up}/@key{down}} keys can no longer be used to adjust
|
||||
each component of a time stamp. If the cursor is at the beginning of
|
||||
the stamp, @kbd{S-@key{up}/@key{down}} will change the stamp by one day,
|
||||
just like @kbd{S-@key{left}/@key{right}}. At the end of the stamp, the
|
||||
time will be changed by one minute.
|
||||
@item
|
||||
When you delete a time stamp character-by-character, it will only
|
||||
disappear from the buffer after @emph{all} (invisible) characters
|
||||
belonging to the ISO timestamp have been removed.
|
||||
@item
|
||||
If the custom time stamp format is longer than the default and you are
|
||||
using dates in tables, table alignment will be messed up. If the custom
|
||||
format is shorter, things do work as expected.
|
||||
@end itemize
|
||||
|
||||
@node Progress logging, , Custom time format, Timestamps
|
||||
@section Progress Logging
|
||||
@cindex progress logging
|
||||
@cindex logging, of progress
|
||||
|
@ -2739,7 +2813,8 @@ keyword together with a timestamp.
|
|||
Stop the clock (clock-out). The inserts another timestamp at the same
|
||||
location where the clock was last started. It also directly computes
|
||||
the resulting time in inserts it after the time range as @samp{=>
|
||||
HH:MM}.
|
||||
HH:MM}. See the variable @code{org-log-done} for the possibility to
|
||||
record an additional note together with a the clock-out time stamp.
|
||||
@kindex C-c C-y
|
||||
@item C-c C-y
|
||||
Recompute the time interval after changing one of the time stamps. This
|
||||
|
@ -2759,7 +2834,8 @@ Display time summaries for each subtree in the current buffer. This
|
|||
puts overlays at the end of each headline, showing the total time
|
||||
recorded under that heading, including the time of any subheadings. You
|
||||
can use visibility cycling to study the tree, but the overlays disappear
|
||||
automatically when the buffer is changed.
|
||||
when you change the buffer (see variable
|
||||
@code{org-remove-highlights-with-change}) or press @kbd{C-c C-c}.
|
||||
@kindex C-c C-x C-r
|
||||
@item C-c C-x C-r
|
||||
Insert a dynamic block (@pxref{Dynamic blocks}) containing a clock
|
||||
|
@ -2807,9 +2883,6 @@ The @kbd{l} key may be used in the timeline (@pxref{Timeline}) and in
|
|||
the agenda (@pxref{Weekly/Daily agenda}) to show which tasks have been
|
||||
worked on or closed during a day.
|
||||
|
||||
See the variable @code{org-log-done} for the possibility to record an
|
||||
additional note together with a the clock-out time stamp.
|
||||
|
||||
@node Tags, Agenda views, Timestamps, Top
|
||||
@chapter Tags
|
||||
@cindex tags
|
||||
|
@ -3012,20 +3085,20 @@ tagged also @samp{NIGHT}.
|
|||
@cindex TODO keyword matching, with tags search
|
||||
If you are using multi-state TODO keywords (@pxref{TODO extensions}), it
|
||||
can be useful to also match on the TODO keyword. This can be done by
|
||||
adding a condition after a double slash to a tags match. The syntax is
|
||||
similar to the tag matches, but should be applied with consideration:
|
||||
For example, a positive selection on several TODO keywords can not
|
||||
adding a condition after a slash to a tags match. The syntax is similar
|
||||
to the tag matches, but should be applied with consideration: For
|
||||
example, a positive selection on several TODO keywords can not
|
||||
meaningfully be combined with boolean AND. However, @emph{negative
|
||||
selection} combined with AND can be meaningful. Examples:
|
||||
|
||||
@table @samp
|
||||
@item WORK//WAITING
|
||||
@item WORK/WAITING
|
||||
Select @samp{:WORK:}-tagged TODO lines with the specific TODO
|
||||
keyword @samp{WAITING}.
|
||||
@item WORK//-WAITING-NEXT
|
||||
@item WORK/-WAITING-NEXT
|
||||
Select @samp{:WORK:}-tagged TODO lines that are neither @samp{WAITING}
|
||||
nor @samp{NEXT}
|
||||
@item WORK//+WAITING|+NEXT
|
||||
@item WORK/+WAITING|+NEXT
|
||||
Select @samp{:WORK:}-tagged TODO lines that are either @samp{WAITING} or
|
||||
@samp{NEXT}.
|
||||
@end table
|
||||
|
@ -4944,6 +5017,12 @@ showstars @r{show all stars starting a headline}
|
|||
odd @r{allow only odd outline levels (1,3,...)}
|
||||
oddeven @r{allow all outline levels}
|
||||
@end example
|
||||
To turn on custom format overlayes over time stamps (variables
|
||||
@code{org-put-time-stamp-overlays} and
|
||||
@code{org-time-stamp-overlay-formats}), use
|
||||
@example
|
||||
customtime @r{overlay custom time format}
|
||||
@end example
|
||||
@item #+SEQ_TODO: #+TYP_TODO:
|
||||
These lines set the TODO keywords and their interpretation in the
|
||||
current file. The corresponding variables are @code{org-todo-keywords}
|
||||
|
|
BIN
orgcard.pdf
BIN
orgcard.pdf
Binary file not shown.
|
@ -1,5 +1,5 @@
|
|||
% Reference Card for Org Mode
|
||||
\def\orgversionnumber{4.52}
|
||||
\def\orgversionnumber{4.53}
|
||||
\def\year{2006}
|
||||
%
|
||||
%**start of header
|
||||
|
@ -541,6 +541,7 @@ after ``{\tt :}'', and dictionary words elsewhere.
|
|||
%\key{... forward/backward one day}{S-LEFT/RIGHT}
|
||||
%\key{... forward/backward one week}{S-UP/DOWN}
|
||||
%\key{... forward/backward one month}{M-S-LEFT/RIGT}
|
||||
\key{Toggle custom format display for dates/times}{C-c C-x C-t}
|
||||
|
||||
|
||||
\section{Clocking Time}
|
||||
|
|
Loading…
Reference in New Issue