12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693 |
- \input texinfo
- @c %**start of header
- @setfilename ../../info/orgguide
- @settitle The compact Org-mode Guide
- @include org-version.inc
- @c Use proper quote and backtick for code sections in PDF output
- @c Cf. Texinfo manual 14.2
- @set txicodequoteundirected
- @set txicodequotebacktick
- @c Version and Contact Info
- @set MAINTAINERSITE @uref{http://orgmode.org,maintainers webpage}
- @set AUTHOR Carsten Dominik
- @set MAINTAINER Carsten Dominik
- @set MAINTAINEREMAIL @email{carsten at orgmode dot org}
- @set MAINTAINERCONTACT @uref{mailto:carsten at orgmode dot org,contact the maintainer}
- @c %**end of header
- @finalout
- @c Macro definitions
- @iftex
- @c @hyphenation{time-stamp time-stamps time-stamp-ing time-stamp-ed}
- @end iftex
- @c Subheadings inside a table.
- @macro tsubheading{text}
- @ifinfo
- @subsubheading \text\
- @end ifinfo
- @ifnotinfo
- @item @b{\text\}
- @end ifnotinfo
- @end macro
- @macro seealso{text}
- @noindent
- @b{Further reading}@*@noindent \text\
- @end macro
- @copying
- Copyright @copyright{} 2010--2018 Free Software Foundation
- @quotation
- Permission is granted to copy, distribute and/or modify this document
- under the terms of the GNU Free Documentation License, Version 1.3 or
- any later version published by the Free Software Foundation; with no
- Invariant Sections, with the Front-Cover Texts being ``A GNU Manual,''
- and with the Back-Cover Texts as in (a) below. A copy of the license
- is included in the section entitled ``GNU Free Documentation License''
- in the full Org manual, which is distributed together with the compact
- guide.
- (a) The FSF's Back-Cover Text is: ``You have the freedom to copy and
- modify this GNU manual.''
- @end quotation
- @end copying
- @dircategory Emacs
- @direntry
- * Org Mode Guide: (orgguide). Abbreviated Org-mode Manual
- @end direntry
- @titlepage
- @title The compact Org-mode Guide
- @subtitle Release @value{VERSION}
- @author by Carsten Dominik
- @c The following two commands start the copyright page.
- @page
- @vskip 0pt plus 1filll
- @insertcopying
- @end titlepage
- @c Output the table of contents at the beginning.
- @shortcontents
- @ifnottex
- @node Top, Introduction, (dir), (dir)
- @top Org Mode Guide
- @insertcopying
- @end ifnottex
- @menu
- * Introduction:: Getting started
- * Document Structure:: A tree works like your brain
- * Tables:: Pure magic for quick formatting
- * Hyperlinks:: Notes in context
- * TODO Items:: Every tree branch can be a TODO item
- * Tags:: Tagging headlines and matching sets of tags
- * Properties:: Properties
- * Dates and Times:: Making items useful for planning
- * Capture - Refile - Archive:: The ins and outs for projects
- * Agenda Views:: Collecting information into views
- * Markup:: Prepare text for rich export
- * Exporting:: Sharing and publishing of notes
- * Publishing:: Create a web site of linked Org files
- * Working With Source Code:: Source code snippets embedded in Org
- * Miscellaneous:: All the rest which did not fit elsewhere
- * GNU Free Documentation License:: This manual license.
- @detailmenu
- --- The Detailed Node Listing ---
- Introduction
- * Preface:: Welcome
- * Installation:: How to install a downloaded version of Org
- * Activation:: How to activate Org for certain buffers
- * Feedback:: Bug reports, ideas, patches etc.
- Document Structure
- * Outlines:: Org is based on Outline mode
- * Headlines:: How to typeset Org tree headlines
- * Visibility cycling:: Show and hide, much simplified
- * Motion:: Jumping to other headlines
- * Structure editing:: Changing sequence and level of headlines
- * Sparse trees:: Matches embedded in context
- * Plain lists:: Additional structure within an entry
- * Footnotes:: How footnotes are defined in Org's syntax
- Hyperlinks
- * Link format:: How links in Org are formatted
- * Internal links:: Links to other places in the current file
- * External links:: URL-like links to the world
- * Handling links:: Creating, inserting and following
- * Targeted links:: Point at a location in a file
- TODO Items
- * Using TODO states:: Setting and switching states
- * Multi-state workflows:: More than just on/off
- * Progress logging:: Dates and notes for progress
- * Priorities:: Some things are more important than others
- * Breaking down tasks:: Splitting a task into manageable pieces
- * Checkboxes:: Tick-off lists
- Progress logging
- * Closing items:: When was this entry marked DONE?
- * Tracking TODO state changes:: When did the status change?
- Tags
- * Tag inheritance:: Tags use the tree structure of the outline
- * Setting tags:: How to assign tags to a headline
- * Tag groups:: Use one tag to search for several tags
- * Tag searches:: Searching for combinations of tags
- Dates and Times
- * Timestamps:: Assigning a time to a tree entry
- * Creating timestamps:: Commands which insert timestamps
- * Deadlines and scheduling:: Planning your work
- * Clocking work time:: Tracking how long you spend on a task
- Capture - Refile - Archive
- * Capture:: Capturing new stuff
- * Refile and copy:: Moving a tree from one place to another
- * Archiving:: What to do with finished projects
- Capture
- * Setting up a capture location:: Where notes will be stored
- * Using capture:: Commands to invoke and terminate capture
- * Capture templates:: Define the outline of different note types
- Agenda Views
- * Agenda files:: Files being searched for agenda information
- * Agenda dispatcher:: Keyboard access to agenda views
- * Built-in agenda views:: What is available out of the box?
- * Agenda commands:: Remote editing of Org trees
- * Custom agenda views:: Defining special searches and views
- The built-in agenda views
- * Weekly/daily agenda:: The calendar page with current tasks
- * Global TODO list:: All unfinished action items
- * Matching tags and properties:: Structured information with fine-tuned search
- * Search view:: Find entries by searching for text
- Markup for rich export
- * Structural markup elements:: The basic structure as seen by the exporter
- * Images and tables:: Images, tables and caption mechanism
- * Literal examples:: Source code examples with special formatting
- * Include files:: Include additional files into a document
- * Embedded @LaTeX{}:: @LaTeX{} can be freely used inside Org documents
- Structural markup elements
- * Document title:: Where the title is taken from
- * Headings and sections:: The document structure as seen by the exporter
- * Table of contents:: The if and where of the table of contents
- * Paragraphs:: Paragraphs
- * Emphasis and monospace:: Bold, italic, etc.
- * Comment lines:: What will *not* be exported
- Exporting
- * Export options:: Per-file export settings
- * The export dispatcher:: How to access exporter commands
- * ASCII/Latin-1/UTF-8 export:: Exporting to flat files with encoding
- * HTML export:: Exporting to HTML
- * @LaTeX{} and PDF export:: Exporting to @LaTeX{}, and processing to PDF
- * iCalendar export:: Exporting to iCalendar
- Miscellaneous
- * Completion:: M-TAB knows what you need
- * Clean view:: Getting rid of leading stars in the outline
- * MobileOrg:: Org-mode on the iPhone
- @end detailmenu
- @end menu
- @node Introduction, Document Structure, Top, Top
- @chapter Introduction
- @menu
- * Preface:: Welcome
- * Installation:: How to install a downloaded version of Org
- * Activation:: How to activate Org for certain buffers
- * Feedback:: Bug reports, ideas, patches etc.
- @end menu
- @node Preface, Installation, Introduction, Introduction
- @section Preface
- Org is a mode for keeping notes, maintaining TODO lists, and doing project
- planning with a fast and effective plain-text system. It is also an
- authoring and publishing system, and it supports working with source code for
- literal programming and reproducible research.
- @i{This document is a much compressed derivative of the
- @uref{http://orgmode.org/index.html#sec-4_1, comprehensive Org-mode manual}.
- It contains all basic features and commands, along with important hints for
- customization. It is intended for beginners who would shy back from a 200
- page manual because of sheer size.}
- @node Installation, Activation, Preface, Introduction
- @section Installation
- @b{Important:} @i{If you are using a version of Org that is part of the Emacs
- distribution, please skip this section and go directly to @ref{Activation}.}
- If you have downloaded Org from the Web, either as a distribution @file{.zip}
- or @file{.tar} file, or as a Git archive, it is best to run it directly from
- the distribution directory. You need to add the @file{lisp} subdirectories
- to the Emacs load path. To do this, add the following line to @file{.emacs}:
- @smallexample
- (setq load-path (cons "~/path/to/orgdir/lisp" load-path))
- (setq load-path (cons "~/path/to/orgdir/contrib/lisp" load-path))
- @end smallexample
- @noindent
- If you have been using git or a tar ball to get Org, you need to
- run the following command to generate autoload information.
- command:
- @smallexample
- make autoloads
- @end smallexample
- @node Activation, Feedback, Installation, Introduction
- @section Activation
- Add the following lines to your @file{.emacs} file. The last four lines
- define @emph{global} keys for some commands --- please choose suitable keys
- yourself.
- @smalllisp
- ;; The following lines are always needed. Choose your own keys.
- (global-set-key "\C-cl" 'org-store-link)
- (global-set-key "\C-ca" 'org-agenda)
- (global-set-key "\C-cc" 'org-capture)
- (global-set-key "\C-cb" 'org-iswitchb)
- @end smalllisp
- Files with extension @samp{.org} will be put into Org mode automatically.
- @node Feedback, , Activation, Introduction
- @section Feedback
- If you find problems with Org, or if you have questions, remarks, or ideas
- about it, please mail to the Org mailing list @email{emacs-orgmode@@gnu.org}.
- For information on how to submit bug reports, see the main manual.
- @node Document Structure, Tables, Introduction, Top
- @chapter Document Structure
- Org is based on Outline mode and provides flexible commands to
- edit the structure of the document.
- @menu
- * Outlines:: Org is based on Outline mode
- * Headlines:: How to typeset Org tree headlines
- * Visibility cycling:: Show and hide, much simplified
- * Motion:: Jumping to other headlines
- * Structure editing:: Changing sequence and level of headlines
- * Sparse trees:: Matches embedded in context
- * Plain lists:: Additional structure within an entry
- * Footnotes:: How footnotes are defined in Org's syntax
- @end menu
- @node Outlines, Headlines, Document Structure, Document Structure
- @section Outlines
- Org is implemented on top of Outline mode. Outlines allow a
- document to be organized in a hierarchical structure, which (at least
- for me) is the best representation of notes and thoughts. An overview
- of this structure is achieved by folding (hiding) large parts of the
- document to show only the general document structure and the parts
- currently being worked on. Org greatly simplifies the use of
- outlines by compressing the entire show/hide functionality into a single
- command, @command{org-cycle}, which is bound to the @key{TAB} key.
- @node Headlines, Visibility cycling, Outlines, Document Structure
- @section Headlines
- Headlines define the structure of an outline tree. The headlines in
- Org start with one or more stars, on the left margin@footnote{See
- the variable @code{org-special-ctrl-a/e} to configure special behavior
- of @kbd{C-a} and @kbd{C-e} in headlines.}. For example:
- @smallexample
- * Top level headline
- ** Second level
- *** 3rd level
- some text
- *** 3rd level
- more text
- * Another top level headline
- @end smallexample
- @noindent Note that a headline named after @code{org-footnote-section},
- which defaults to @samp{Footnotes}, is considered as special. A subtree with
- this headline will be silently ignored by exporting functions.
- Some people find the many stars too noisy and would prefer an
- outline that has whitespace followed by a single star as headline
- starters. @ref{Clean view}, describes a setup to realize this.
- @node Visibility cycling, Motion, Headlines, Document Structure
- @section Visibility cycling
- Outlines make it possible to hide parts of the text in the buffer.
- Org uses just two commands, bound to @key{TAB} and
- @kbd{S-@key{TAB}} to change the visibility in the buffer.
- @table @kbd
- @item @key{TAB}
- @emph{Subtree cycling}: Rotate current subtree among the states
- @smallexample
- ,-> FOLDED -> CHILDREN -> SUBTREE --.
- '-----------------------------------'
- @end smallexample
- When called with a prefix argument (@kbd{C-u @key{TAB}}) or with the shift
- key, global cycling is invoked.
- @item S-@key{TAB} @r{and} C-u @key{TAB}
- @emph{Global cycling}: Rotate the entire buffer among the states
- @smallexample
- ,-> OVERVIEW -> CONTENTS -> SHOW ALL --.
- '--------------------------------------'
- @end smallexample
- @item C-u C-u C-u @key{TAB}
- Show all, including drawers.
- @end table
- When Emacs first visits an Org file, the global state is set to
- OVERVIEW, i.e.@: only the top level headlines are visible. This can be
- configured through the variable @code{org-startup-folded}, or on a
- per-file basis by adding a startup keyword @code{overview}, @code{content},
- @code{showall}, like this:
- @smallexample
- #+STARTUP: content
- @end smallexample
- @node Motion, Structure editing, Visibility cycling, Document Structure
- @section Motion
- The following commands jump to other headlines in the buffer.
- @table @kbd
- @item C-c C-n
- Next heading.
- @item C-c C-p
- Previous heading.
- @item C-c C-f
- Next heading same level.
- @item C-c C-b
- Previous heading same level.
- @item C-c C-u
- Backward to higher level heading.
- @end table
- @node Structure editing, Sparse trees, Motion, Document Structure
- @section Structure editing
- @table @kbd
- @item M-@key{RET}
- Insert new heading with same level as current. If the cursor is in a plain
- list item, a new item is created (@pxref{Plain lists}). When this command is
- used in the middle of a line, the line is split and the rest of the line
- becomes the new headline@footnote{If you do not want the line to be split,
- customize the variable @code{org-M-RET-may-split-line}.}.
- @item M-S-@key{RET}
- Insert new TODO entry with same level as current heading.
- @item @key{TAB} @r{in new, empty entry}
- In a new entry with no text yet, @key{TAB} will cycle through reasonable
- levels.
- @item M-@key{left}@r{/}@key{right}
- Promote/demote current heading by one level.
- @item M-S-@key{left}@r{/}@key{right}
- Promote/demote the current subtree by one level.
- @item M-S-@key{up}@r{/}@key{down}
- Move subtree up/down (swap with previous/next subtree of same
- level).
- @item C-c C-w
- Refile entry or region to a different location. @xref{Refile and copy}.
- @item C-x n s/w
- Narrow buffer to current subtree / widen it again
- @end table
- When there is an active region (Transient Mark mode), promotion and
- demotion work on all headlines in the region.
- @node Sparse trees, Plain lists, Structure editing, Document Structure
- @section Sparse trees
- An important feature of Org mode is the ability to construct @emph{sparse
- trees} for selected information in an outline tree, so that the entire
- document is folded as much as possible, but the selected information is made
- visible along with the headline structure above it@footnote{See also the
- variable @code{org-show-context-detail} to decide how much context is shown
- around each match.}. Just try it out and you will see immediately how it
- works.
- Org mode contains several commands creating such trees, all these
- commands can be accessed through a dispatcher:
- @table @kbd
- @item C-c /
- This prompts for an extra key to select a sparse-tree creating command.
- @item C-c / r
- Occur. Prompts for a regexp and shows a sparse tree with all matches. Each
- match is also highlighted; the highlights disappear by pressing @kbd{C-c C-c}.
- @end table
- The other sparse tree commands select headings based on TODO keywords,
- tags, or properties and will be discussed later in this manual.
- @node Plain lists, Footnotes, Sparse trees, Document Structure
- @section Plain lists
- Within an entry of the outline tree, hand-formatted lists can provide
- additional structure. They also provide a way to create lists of
- checkboxes (@pxref{Checkboxes}). Org supports editing such lists,
- and the HTML exporter (@pxref{Exporting}) parses and formats them.
- Org knows ordered lists, unordered lists, and description lists.
- @itemize @bullet
- @item
- @emph{Unordered} list items start with @samp{-}, @samp{+}, or
- @samp{*} as bullets.
- @item
- @emph{Ordered} list items start with @samp{1.} or @samp{1)}.
- @item
- @emph{Description} list use @samp{ :: } to separate the @emph{term} from the
- description.
- @end itemize
- Items belonging to the same list must have the same indentation on the first
- line. An item ends before the next line that is indented like its
- bullet/number, or less. A list ends when all items are closed, or before two
- blank lines. An example:
- @smallexample
- @group
- ** Lord of the Rings
- My favorite scenes are (in this order)
- 1. The attack of the Rohirrim
- 2. Eowyn's fight with the witch king
- + this was already my favorite scene in the book
- + I really like Miranda Otto.
- Important actors in this film are:
- - @b{Elijah Wood} :: He plays Frodo
- - @b{Sean Astin} :: He plays Sam, Frodo's friend.
- @end group
- @end smallexample
- The following commands act on items when the cursor is in the first line of
- an item (the line with the bullet or number).
- @table @kbd
- @item @key{TAB}
- Items can be folded just like headline levels.
- @item M-@key{RET}
- Insert new item at current level. With a prefix argument, force a new
- heading (@pxref{Structure editing}).
- @item M-S-@key{RET}
- Insert a new item with a checkbox (@pxref{Checkboxes}).
- @item M-S-@key{up}@r{/}@key{down}
- Move the item including subitems up/down (swap with previous/next item
- of same indentation). If the list is ordered, renumbering is
- automatic.
- @item M-@key{left}@r{/}M-@key{right}
- Decrease/increase the indentation of an item, leaving children alone.
- @item M-S-@key{left}@r{/}@key{right}
- Decrease/increase the indentation of the item, including subitems.
- @item C-c C-c
- If there is a checkbox (@pxref{Checkboxes}) in the item line, toggle the
- state of the checkbox. Also verify bullets and indentation consistency in
- the whole list.
- @item C-c -
- Cycle the entire list level through the different itemize/enumerate bullets
- (@samp{-}, @samp{+}, @samp{*}, @samp{1.}, @samp{1)}).
- @end table
- @node Footnotes, , Plain lists, Document Structure
- @section Footnotes
- A footnote is defined in a paragraph that is started by a footnote marker in
- square brackets in column 0, no indentation allowed. The footnote reference
- is simply the marker in square brackets, inside text. For example:
- @smallexample
- The Org homepage[fn:1] now looks a lot better than it used to.
- ...
- [fn:1] The link is: http://orgmode.org
- @end smallexample
- @noindent
- The following commands handle footnotes:
- @table @kbd
- @item C-c C-x f
- The footnote action command. When the cursor is on a footnote reference,
- jump to the definition. When it is at a definition, jump to the (first)
- reference. Otherwise, create a new footnote. When this command is called
- with a prefix argument, a menu of additional options including renumbering is
- offered.
- @item C-c C-c
- Jump between definition and reference.
- @end table
- @seealso{
- @uref{http://orgmode.org/manual/Document-Structure.html#Document-Structure,
- Chapter 2 of the manual}@*
- @uref{http://sachachua.com/wp/2008/01/outlining-your-notes-with-org/,
- Sacha Chua's tutorial}}
- @node Tables, Hyperlinks, Document Structure, Top
- @chapter Tables
- Org comes with a fast and intuitive table editor. Spreadsheet-like
- calculations are supported in connection with the Emacs @file{calc}
- package
- @ifinfo
- (@pxref{Top,Calc,,Calc,Gnu Emacs Calculator Manual}).
- @end ifinfo
- @ifnotinfo
- (see the Emacs Calculator manual for more information about the Emacs
- calculator).
- @end ifnotinfo
- Org makes it easy to format tables in plain ASCII. Any line with
- @samp{|} as the first non-whitespace character is considered part of a
- table. @samp{|} is also the column separator. A table might look like
- this:
- @smallexample
- | Name | Phone | Age |
- |-------+-------+-----|
- | Peter | 1234 | 17 |
- | Anna | 4321 | 25 |
- @end smallexample
- A table is re-aligned automatically each time you press @key{TAB} or
- @key{RET} or @kbd{C-c C-c} inside the table. @key{TAB} also moves to
- the next field (@key{RET} to the next row) and creates new table rows
- at the end of the table or before horizontal lines. The indentation
- of the table is set by the first line. Any line starting with
- @samp{|-} is considered as a horizontal separator line and will be
- expanded on the next re-align to span the whole table width. So, to
- create the above table, you would only type
- @smallexample
- |Name|Phone|Age|
- |-
- @end smallexample
- @noindent
- and then press @key{TAB} to align the table and start filling in
- fields. Even faster would be to type @code{|Name|Phone|Age} followed by
- @kbd{C-c @key{RET}}.
- When typing text into a field, Org treats @key{DEL},
- @key{Backspace}, and all character keys in a special way, so that
- inserting and deleting avoids shifting other fields. Also, when
- typing @emph{immediately after the cursor was moved into a new field
- with @kbd{@key{TAB}}, @kbd{S-@key{TAB}} or @kbd{@key{RET}}}, the
- field is automatically made blank.
- @table @kbd
- @tsubheading{Creation and conversion}
- @item C-c |
- Convert the active region to table. If every line contains at least one TAB
- character, the function assumes that the material is tab separated. If every
- line contains a comma, comma-separated values (CSV) are assumed. If not,
- lines are split at whitespace into fields.
- @*
- If there is no active region, this command creates an empty Org
- table. But it's easier just to start typing, like
- @kbd{|Name|Phone|Age C-c @key{RET}}.
- @tsubheading{Re-aligning and field motion}
- @item C-c C-c
- Re-align the table without moving the cursor.
- @c
- @item @key{TAB}
- Re-align the table, move to the next field. Creates a new row if
- necessary.
- @c
- @item S-@key{TAB}
- Re-align, move to previous field.
- @c
- @item @key{RET}
- Re-align the table and move down to next row. Creates a new row if
- necessary.
- @tsubheading{Column and row editing}
- @item M-@key{left}
- @itemx M-@key{right}
- Move the current column left/right.
- @c
- @item M-S-@key{left}
- Kill the current column.
- @c
- @item M-S-@key{right}
- Insert a new column to the left of the cursor position.
- @c
- @item M-@key{up}
- @itemx M-@key{down}
- Move the current row up/down.
- @c
- @item M-S-@key{up}
- Kill the current row or horizontal line.
- @c
- @item M-S-@key{down}
- Insert a new row above the current row. With a prefix argument, the line is
- created below the current one.
- @c
- @item C-c -
- Insert a horizontal line below current row. With a prefix argument, the line
- is created above the current line.
- @c
- @item C-c @key{RET}
- Insert a horizontal line below current row, and move the cursor into the row
- below that line.
- @c
- @item C-c ^
- Sort the table lines in the region. The position of point indicates the
- column to be used for sorting, and the range of lines is the range
- between the nearest horizontal separator lines, or the entire table.
- @end table
- @seealso{
- @uref{http://orgmode.org/manual/Tables.html#Tables, Chapter 3 of the
- manual}@*
- @uref{http://orgmode.org/worg/org-tutorials/tables.php, Bastien's
- table tutorial}@*
- @uref{http://orgmode.org/worg/org-tutorials/org-spreadsheet-intro.php,
- Bastien's spreadsheet tutorial}@*
- @uref{http://orgmode.org/worg/org-tutorials/org-plot.php, Eric's plotting tutorial}}
- @node Hyperlinks, TODO Items, Tables, Top
- @chapter Hyperlinks
- Like HTML, Org provides links inside a file, external links to
- other files, Usenet articles, emails, and much more.
- @menu
- * Link format:: How links in Org are formatted
- * Internal links:: Links to other places in the current file
- * External links:: URL-like links to the world
- * Handling links:: Creating, inserting and following
- * Targeted links:: Point at a location in a file
- @end menu
- @node Link format, Internal links, Hyperlinks, Hyperlinks
- @section Link format
- Org will recognize plain URL-like links and activate them as
- clickable links. The general link format, however, looks like this:
- @smallexample
- [[link][description]] @r{or alternatively} [[link]]
- @end smallexample
- @noindent
- Once a link in the buffer is complete (all brackets present), Org will change
- the display so that @samp{description} is displayed instead of
- @samp{[[link][description]]} and @samp{link} is displayed instead of
- @samp{[[link]]}. To edit the invisible @samp{link} part, use @kbd{C-c
- C-l} with the cursor on the link.
- @node Internal links, External links, Link format, Hyperlinks
- @section Internal links
- If the link does not look like a URL, it is considered to be internal in the
- current file. The most important case is a link like
- @samp{[[#my-custom-id]]} which will link to the entry with the
- @code{CUSTOM_ID} property @samp{my-custom-id}.
- Links such as @samp{[[My Target]]} or @samp{[[My Target][Find my target]]}
- lead to a text search in the current file for the corresponding target which
- looks like @samp{<<My Target>>}.
- Internal links will be used to reference their destination, through links or
- numbers, when possible.
- @node External links, Handling links, Internal links, Hyperlinks
- @section External links
- Org supports links to files, websites, Usenet and email messages,
- BBDB database entries and links to both IRC conversations and their
- logs. External links are URL-like locators. They start with a short
- identifying string followed by a colon. There can be no space after
- the colon. Here are some examples:
- @smallexample
- http://www.astro.uva.nl/~dominik @r{on the web}
- file:/home/dominik/images/jupiter.jpg @r{file, absolute path}
- /home/dominik/images/jupiter.jpg @r{same as above}
- file:papers/last.pdf @r{file, relative path}
- file:projects.org @r{another Org file}
- docview:papers/last.pdf::NNN @r{open file in doc-view mode at page NNN}
- id:B7423F4D-2E8A-471B-8810-C40F074717E9 @r{Link to heading by ID}
- news:comp.emacs @r{Usenet link}
- mailto:adent@@galaxy.net @r{Mail link}
- vm:folder @r{VM folder link}
- vm:folder#id @r{VM message link}
- wl:folder#id @r{WANDERLUST message link}
- mhe:folder#id @r{MH-E message link}
- rmail:folder#id @r{RMAIL message link}
- gnus:group#id @r{Gnus article link}
- bbdb:R.*Stallman @r{BBDB link (with regexp)}
- irc:/irc.com/#emacs/bob @r{IRC link}
- info:org:External%20links @r{Info node link (with encoded space)}
- @end smallexample
- A link should be enclosed in double brackets and may contain a
- descriptive text to be displayed instead of the URL (@pxref{Link
- format}), for example:
- @smallexample
- [[http://www.gnu.org/software/emacs/][GNU Emacs]]
- @end smallexample
- @noindent
- If the description is a file name or URL that points to an image, HTML export
- (@pxref{HTML export}) will inline the image as a clickable button. If there
- is no description at all and the link points to an image, that image will be
- inlined into the exported HTML file.
- @node Handling links, Targeted links, External links, Hyperlinks
- @section Handling links
- Org provides methods to create a link in the correct syntax, to
- insert it into an Org file, and to follow the link.
- @table @kbd
- @item C-c l
- Store a link to the current location. This is a @emph{global} command (you
- must create the key binding yourself) which can be used in any buffer to
- create a link. The link will be stored for later insertion into an Org
- buffer (see below).
- @c
- @item C-c C-l
- Insert a link. This prompts for a link to be inserted into the buffer. You
- can just type a link, or use history keys @key{up} and @key{down} to access
- stored links. You will be prompted for the description part of the link.
- When called with a @kbd{C-u} prefix argument, file name completion is used to
- link to a file.
- @c
- @item C-c C-l @r{(with cursor on existing link)}
- When the cursor is on an existing link, @kbd{C-c C-l} allows you to edit the
- link and description parts of the link.
- @c
- @item C-c C-o @r{or} mouse-1 @r{or} mouse-2
- Open link at point.
- @item C-c &
- Jump back to a recorded position. A position is recorded by the
- commands following internal links, and by @kbd{C-c %}. Using this
- command several times in direct succession moves through a ring of
- previously recorded positions.
- @c
- @end table
- @node Targeted links, , Handling links, Hyperlinks
- @section Targeted links
- 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 colon.
- Here is the syntax of the different ways to attach a search to a file
- link, together with an explanation:
- @smallexample
- [[file:~/code/main.c::255]] @r{Find line 255}
- [[file:~/xx.org::My Target]] @r{Find @samp{<<My Target>>}}
- [[file:~/xx.org::#my-custom-id]] @r{Find entry with custom id}
- @end smallexample
- @seealso{
- @uref{http://orgmode.org/manual/Hyperlinks.html#Hyperlinks, Chapter 4 of the
- manual}}
- @node TODO Items, Tags, Hyperlinks, Top
- @chapter TODO Items
- Org mode does not require TODO lists to live in separate documents. Instead,
- TODO items are part of a notes file, because TODO items usually
- come up while taking notes! With Org mode, simply mark any entry in a tree
- as being a TODO item. In this way, information is not duplicated, and TODO
- items remain in the context from which they emerged.
- Org mode providing methods to give you an overview of all the things that you
- have to do, collected from many files.
- @menu
- * Using TODO states:: Setting and switching states
- * Multi-state workflows:: More than just on/off
- * Progress logging:: Dates and notes for progress
- * Priorities:: Some things are more important than others
- * Breaking down tasks:: Splitting a task into manageable pieces
- * Checkboxes:: Tick-off lists
- @end menu
- @node Using TODO states, Multi-state workflows, TODO Items, TODO Items
- @section Using TODO states
- Any headline becomes a TODO item when it starts with the word
- @samp{TODO}, for example:
- @smallexample
- *** TODO Write letter to Sam Fortune
- @end smallexample
- @noindent
- The most important commands to work with TODO entries are:
- @table @kbd
- @item C-c C-t
- Rotate the TODO state of the current item among
- @smallexample
- (unmarked) -> TODO -> DONE -> (unmarked)
- @end smallexample
- The same rotation can also be done ``remotely'' from the agenda buffers with
- the @kbd{t} command key (@pxref{Agenda commands}).
- @item S-@key{right}@r{/}@key{left}
- Select the following/preceding TODO state, similar to cycling.
- @item C-c / t
- View TODO items in a @emph{sparse tree} (@pxref{Sparse trees}). Folds the
- buffer, but shows all TODO items and the headings hierarchy above
- them.
- @item C-c a t
- Show the global TODO list. Collects the TODO items from all agenda files
- (@pxref{Agenda Views}) into a single buffer. @xref{Global TODO list}, for
- more information.
- @item S-M-@key{RET}
- Insert a new TODO entry below the current one.
- @end table
- @noindent
- Changing a TODO state can also trigger tag changes. See the docstring of the
- option @code{org-todo-state-tags-triggers} for details.
- @node Multi-state workflows, Progress logging, Using TODO states, TODO Items
- @section Multi-state workflows
- You can use TODO keywords to indicate @emph{sequential} working progress
- states:
- @smalllisp
- (setq org-todo-keywords
- '((sequence "TODO" "FEEDBACK" "VERIFY" "|" "DONE" "DELEGATED")))
- @end smalllisp
- The vertical bar separates the TODO keywords (states that @emph{need action})
- from the DONE states (which need @emph{no further action}). If you don't
- provide the separator bar, the last state is used as the DONE state. With
- this setup, the command @kbd{C-c C-t} will cycle an entry from TODO to
- FEEDBACK, then to VERIFY, and finally to DONE and DELEGATED. Sometimes you
- may want to use different sets of TODO keywords in parallel. For example,
- you may want to have the basic @code{TODO}/@code{DONE}, but also a workflow
- for bug fixing. Your setup would then look like this:
- @smalllisp
- (setq org-todo-keywords
- '((sequence "TODO(t)" "|" "DONE(d)")
- (sequence "REPORT(r)" "BUG(b)" "KNOWNCAUSE(k)" "|" "FIXED(f)")))
- @end smalllisp
- The keywords should all be different, this helps Org mode to keep track of
- which subsequence should be used for a given entry. The example also shows
- how to define keys for fast access of a particular state, by adding a letter
- in parenthesis after each keyword---you will be prompted for the key after
- @kbd{C-c C-t}.
- To define TODO keywords that are valid only in a single file, use the
- following text anywhere in the file.
- @smallexample
- #+TODO: TODO(t) | DONE(d)
- #+TODO: REPORT(r) BUG(b) KNOWNCAUSE(k) | FIXED(f)
- #+TODO: | CANCELED(c)
- @end smallexample
- After changing one of these lines, use @kbd{C-c C-c} with the cursor still in
- the line to make the changes known to Org mode.
- @node Progress logging, Priorities, Multi-state workflows, TODO Items
- @section Progress logging
- Org mode can automatically record a timestamp and possibly a note when
- you mark a TODO item as DONE, or even each time you change the state of
- a TODO item. This system is highly configurable; settings can be on a
- per-keyword basis and can be localized to a file or even a subtree. For
- information on how to clock working time for a task, see @ref{Clocking
- work time}.
- @menu
- * Closing items:: When was this entry marked DONE?
- * Tracking TODO state changes:: When did the status change?
- @end menu
- @node Closing items, Tracking TODO state changes, Progress logging, Progress logging
- @unnumberedsubsec Closing items
- The most basic logging is to keep track of @emph{when} a certain TODO
- item was finished. This is achieved with@footnote{The corresponding
- in-buffer setting is: @code{#+STARTUP: logdone}}.
- @smalllisp
- (setq org-log-done 'time)
- @end smalllisp
- @noindent
- Then each time you turn an entry from a TODO (not-done) state into any of the
- DONE states, a line @samp{CLOSED: [timestamp]} will be inserted just after
- the headline. If you want to record a note along with the timestamp,
- use@footnote{The corresponding in-buffer setting is: @code{#+STARTUP:
- lognotedone}}
- @smalllisp
- (setq org-log-done 'note)
- @end smalllisp
- @noindent
- You will then be prompted for a note, and that note will be stored below
- the entry with a @samp{Closing Note} heading.
- @node Tracking TODO state changes, , Closing items, Progress logging
- @unnumberedsubsec Tracking TODO state changes
- You might want to keep track of TODO state changes. You can either record
- just a timestamp, or a time-stamped note for a change. These records will be
- inserted after the headline as an itemized list. When taking a lot of notes,
- you might want to get the notes out of the way into a drawer. Customize the
- variable @code{org-log-into-drawer} to get this behavior.
- For state logging, Org mode expects configuration on a per-keyword basis.
- This is achieved by adding special markers @samp{!} (for a timestamp) and
- @samp{@@} (for a note) in parentheses after each keyword. For example:
- @smallexample
- #+TODO: TODO(t) WAIT(w@@/!) | DONE(d!) CANCELED(c@@)
- @end smallexample
- @noindent
- will define TODO keywords and fast access keys, and also request that a time
- is recorded when the entry is set to DONE, and that a note is recorded when
- switching to WAIT or CANCELED. The same syntax works also when setting
- @code{org-todo-keywords}.
- @node Priorities, Breaking down tasks, Progress logging, TODO Items
- @section Priorities
- If you use Org mode extensively, you may end up with enough TODO items that
- it starts to make sense to prioritize them. Prioritizing can be done by
- placing a @emph{priority cookie} into the headline of a TODO item, like this
- @smallexample
- *** TODO [#A] Write letter to Sam Fortune
- @end smallexample
- @noindent
- Org mode supports three priorities: @samp{A}, @samp{B}, and @samp{C}.
- @samp{A} is the highest, @samp{B} the default if none is given. Priorities
- make a difference only in the agenda.
- @table @kbd
- @item @kbd{C-c ,}
- Set the priority of the current headline. Press @samp{A}, @samp{B} or
- @samp{C} to select a priority, or @key{SPC} to remove the cookie.
- @c
- @item S-@key{up}/@key{dwn}
- Increase/decrease priority of current headline
- @end table
- @node Breaking down tasks, Checkboxes, Priorities, TODO Items
- @section Breaking tasks down into subtasks
- It is often advisable to break down large tasks into smaller, manageable
- subtasks. You can do this by creating an outline tree below a TODO item,
- with detailed subtasks on the tree. To keep the overview over the fraction
- of subtasks that are already completed, insert either @samp{[/]} or
- @samp{[%]} anywhere in the headline. These cookies will be updated each time
- the TODO status of a child changes, or when pressing @kbd{C-c C-c} on the
- cookie. For example:
- @smallexample
- * Organize Party [33%]
- ** TODO Call people [1/2]
- *** TODO Peter
- *** DONE Sarah
- ** TODO Buy food
- ** DONE Talk to neighbor
- @end smallexample
- @node Checkboxes, , Breaking down tasks, TODO Items
- @section Checkboxes
- Every item in a plain list (@pxref{Plain lists}) can be made into a checkbox
- by starting it with the string @samp{[ ]}. Checkboxes are not included in
- the global TODO list, so they are often great to split a task into a number
- of simple steps.
- Here is an example of a checkbox list.
- @smallexample
- * TODO Organize party [1/3]
- - [-] call people [1/2]
- - [ ] Peter
- - [X] Sarah
- - [X] order food
- @end smallexample
- Checkboxes work hierarchically, so if a checkbox item has children that
- are checkboxes, toggling one of the children checkboxes will make the
- parent checkbox reflect if none, some, or all of the children are
- checked.
- @noindent
- The following commands work with checkboxes:
- @table @kbd
- @item C-c C-c
- Toggle checkbox status or (with prefix arg) checkbox presence at point.
- @item M-S-@key{RET}
- Insert a new item with a checkbox.
- This works only if the cursor is already in a plain list item
- (@pxref{Plain lists}).
- @end table
- @seealso{
- @uref{http://orgmode.org/manual/TODO-Items.html#TODO-Items, Chapter 5 of the manual}@*
- @uref{http://orgmode.org/worg/org-tutorials/orgtutorial_dto.php, David
- O'Toole's introductory tutorial}@*
- @uref{http://members.optusnet.com.au/~charles57/GTD/gtd_workflow.html,
- Charles Cave's GTD setup}}
- @node Tags, Properties, TODO Items, Top
- @chapter Tags
- An excellent way to implement labels and contexts for cross-correlating
- information is to assign @i{tags} to headlines. Org mode has extensive
- support for tags.
- Every headline can contain a list of tags; they occur at the end of the
- headline. Tags are normal words containing letters, numbers, @samp{_}, and
- @samp{@@}. Tags must be preceded and followed by a single colon, e.g.,
- @samp{:work:}. Several tags can be specified, as in @samp{:work:urgent:}.
- Tags will by default be in bold face with the same color as the headline.
- @menu
- * Tag inheritance:: Tags use the tree structure of the outline
- * Setting tags:: How to assign tags to a headline
- * Tag groups:: Use one tag to search for several tags
- * Tag searches:: Searching for combinations of tags
- @end menu
- @node Tag inheritance, Setting tags, Tags, Tags
- @section Tag inheritance
- @i{Tags} make use of the hierarchical structure of outline trees. If a
- heading has a certain tag, all subheadings will inherit the tag as
- well. For example, in the list
- @smallexample
- * Meeting with the French group :work:
- ** Summary by Frank :boss:notes:
- *** TODO Prepare slides for him :action:
- @end smallexample
- @noindent
- the final heading will have the tags @samp{:work:}, @samp{:boss:},
- @samp{:notes:}, and @samp{:action:} even though the final heading is not
- explicitly marked with those tags. You can also set tags that all entries in
- a file should inherit just as if these tags were defined in a hypothetical
- level zero that surrounds the entire file. Use a line like this@footnote{As
- with all these in-buffer settings, pressing @kbd{C-c C-c} activates any
- changes in the line.}:
- @smallexample
- #+FILETAGS: :Peter:Boss:Secret:
- @end smallexample
- @node Setting tags, Tag groups, Tag inheritance, Tags
- @section Setting tags
- Tags can simply be typed into the buffer at the end of a headline.
- After a colon, @kbd{M-@key{TAB}} offers completion on tags. There is
- also a special command for inserting tags:
- @table @kbd
- @item C-c C-q
- Enter new tags for the current headline. Org mode will either offer
- completion or a special single-key interface for setting tags, see
- below. After pressing @key{RET}, the tags will be inserted and aligned
- to @code{org-tags-column}. When called with a @kbd{C-u} prefix, all
- tags in the current buffer will be aligned to that column, just to make
- things look nice.
- @item C-c C-c
- When the cursor is in a headline, this does the same as @kbd{C-c C-q}.
- @end table
- Org will support tag insertion based on a @emph{list of tags}. By
- default this list is constructed dynamically, containing all tags
- currently used in the buffer. You may also globally specify a hard list
- of tags with the variable @code{org-tag-alist}. Finally you can set
- the default tags for a given file with lines like
- @smallexample
- #+TAGS: @@work @@home @@tennisclub
- #+TAGS: laptop car pc sailboat
- @end smallexample
- By default Org mode uses the standard minibuffer completion facilities for
- entering tags. However, it also implements another, quicker, tag selection
- method called @emph{fast tag selection}. This allows you to select and
- deselect tags with just a single key press. For this to work well you should
- assign unique letters to most of your commonly used tags. You can do this
- globally by configuring the variable @code{org-tag-alist} in your
- @file{.emacs} file. For example, you may find the need to tag many items in
- different files with @samp{:@@home:}. In this case you can set something
- like:
- @smalllisp
- (setq org-tag-alist '(("@@work" . ?w) ("@@home" . ?h) ("laptop" . ?l)))
- @end smalllisp
- @noindent
- If the tag is only relevant to the file you are working on, then you
- can instead set the TAGS option line as:
- @smallexample
- #+TAGS: @@work(w) @@home(h) @@tennisclub(t) laptop(l) pc(p)
- @end smallexample
- @node Tag groups, Tag searches, Setting tags, Tags
- @section Tag groups
- @cindex group tags
- @cindex tags, groups
- In a set of mutually exclusive tags, the first tag can be defined as a
- @emph{group tag}. When you search for a group tag, it will return matches
- for all members in the group. In an agenda view, filtering by a group tag
- will display headlines tagged with at least one of the members of the
- group. This makes tag searches and filters even more flexible.
- You can set group tags by inserting a colon between the group tag and other
- tags, like this:
- @example
- #+TAGS: @{ @@read : @@read_book @@read_ebook @}
- @end example
- In this example, @samp{@@read} is a @emph{group tag} for a set of three
- tags: @samp{@@read}, @samp{@@read_book} and @samp{@@read_ebook}.
- You can also use the @code{:grouptags} keyword directly when setting
- @var{org-tag-alist}, see the documentation of that variable.
- @kindex C-c C-x q
- @vindex org-group-tags
- If you want to ignore group tags temporarily, toggle group tags support
- with @command{org-toggle-tags-groups}, bound to @kbd{C-c C-x q}. If you
- want to disable tag groups completely, set @var{org-group-tags} to nil.
- @node Tag searches, , Tag groups, Tags
- @section Tag searches
- Once a system of tags has been set up, it can be used to collect related
- information into special lists.
- @table @kbd
- @item C-c \
- @itemx C-c / m
- Create a sparse tree with all headlines matching a tags search. With a
- @kbd{C-u} prefix argument, ignore headlines that are not a TODO line.
- @item C-c a m
- Create a global list of tag matches from all agenda files.
- @xref{Matching tags and properties}.
- @item C-c a M
- Create a global list of tag matches from all agenda files, but check
- only TODO items and force checking subitems (see variable
- @code{org-tags-match-list-sublevels}).
- @end table
- These commands all prompt for a match string which allows basic Boolean logic
- like @samp{+boss+urgent-project1}, to find entries with tags @samp{boss} and
- @samp{urgent}, but not @samp{project1}, or @samp{Kathy|Sally} to find entries
- which are tagged, like @samp{Kathy} or @samp{Sally}. The full syntax of the
- search string is rich and allows also matching against TODO keywords, entry
- levels and properties. For a complete description with many examples, see
- @ref{Matching tags and properties}.
- @seealso{
- @uref{http://orgmode.org/manual/Tags.html#Tags, Chapter 6 of the manual}@*
- @uref{http://sachachua.com/wp/2008/01/tagging-in-org-plus-bonus-code-for-timeclocks-and-tags/,
- Sacha Chua's article about tagging in Org-mode}}
- @node Properties, Dates and Times, Tags, Top
- @chapter Properties
- Properties are key-value pairs associated with an entry. They live in a
- special drawer with the name @code{PROPERTIES}. Each
- property is specified on a single line, with the key (surrounded by colons)
- first, and the value after it:
- @smallexample
- * CD collection
- ** Classic
- *** Goldberg Variations
- :PROPERTIES:
- :Title: Goldberg Variations
- :Composer: J.S. Bach
- :Publisher: Deutsche Grammophon
- :NDisks: 1
- :END:
- @end smallexample
- You may define the allowed values for a particular property @samp{:Xyz:}
- by setting a property @samp{:Xyz_ALL:}. This special property is
- @emph{inherited}, so if you set it in a level 1 entry, it will apply to
- the entire tree. When allowed values are defined, setting the
- corresponding property becomes easier and is less prone to typing
- errors. For the example with the CD collection, we can predefine
- publishers and the number of disks in a box like this:
- @smallexample
- * CD collection
- :PROPERTIES:
- :NDisks_ALL: 1 2 3 4
- :Publisher_ALL: "Deutsche Grammophon" Philips EMI
- :END:
- @end smallexample
- or globally using @code{org-global-properties}, or file-wide like this:
- @smallexample
- #+PROPERTY: NDisks_ALL 1 2 3 4
- @end smallexample
- @table @kbd
- @item C-c C-x p
- Set a property. This prompts for a property name and a value.
- @item C-c C-c d
- Remove a property from the current entry.
- @end table
- To create sparse trees and special lists with selection based on properties,
- the same commands are used as for tag searches (@pxref{Tag searches}). The
- syntax for the search string is described in @ref{Matching tags and
- properties}.
- @table @kbd
- @end table
- @seealso{
- @uref{http://orgmode.org/manual/Properties-and-Columns.html#Properties-and-Columns,
- Chapter 7 of the manual}@*
- @uref{http://orgmode.org/worg/org-tutorials/org-column-view-tutorial.php,Bastien
- Guerry's column view tutorial}}
- @node Dates and Times, Capture - Refile - Archive, Properties, Top
- @chapter Dates and Times
- To assist project planning, TODO items can be labeled with a date and/or
- a time. The specially formatted string carrying the date and time
- information is called a @emph{timestamp} in Org mode.
- @menu
- * Timestamps:: Assigning a time to a tree entry
- * Creating timestamps:: Commands which insert timestamps
- * Deadlines and scheduling:: Planning your work
- * Clocking work time:: Tracking how long you spend on a task
- @end menu
- @node Timestamps, Creating timestamps, Dates and Times, Dates and Times
- @section Timestamps
- A timestamp is a specification of a date (possibly with a time or a range of
- times) in a special format, either @samp{<2003-09-16 Tue>} or
- @samp{<2003-09-16 Tue 09:39>} or @samp{<2003-09-16 Tue 12:00-12:30>}. A
- timestamp can appear anywhere in the headline or body of an Org tree entry.
- Its presence causes entries to be shown on specific dates in the agenda
- (@pxref{Weekly/daily agenda}). We distinguish:
- @noindent
- @b{Plain timestamp; Event; Appointment}@*
- A simple timestamp just assigns a date/time to an item. This is just
- like writing down an appointment or event in a paper agenda.
- @smallexample
- * Meet Peter at the movies
- <2006-11-01 Wed 19:15>
- * Discussion on climate change
- <2006-11-02 Thu 20:00-22:00>
- @end smallexample
- @noindent
- @b{Timestamp with repeater interval}@*
- A timestamp may contain a @emph{repeater interval}, indicating that it
- applies not only on the given date, but again and again after a certain
- interval of N days (d), weeks (w), months (m), or years (y). The
- following will show up in the agenda every Wednesday:
- @smallexample
- * Pick up Sam at school
- <2007-05-16 Wed 12:30 +1w>
- @end smallexample
- @noindent
- @b{Diary-style sexp entries}@*
- For more complex date specifications, Org mode supports using the
- special sexp diary entries implemented in the Emacs calendar/diary
- package. For example
- @smallexample
- * The nerd meeting on every 2nd Thursday of the month
- <%%(diary-float t 4 2)>
- @end smallexample
- @noindent
- @b{Time/Date range}@*
- Two timestamps connected by @samp{--} denote a range.
- @smallexample
- ** Meeting in Amsterdam
- <2004-08-23 Mon>--<2004-08-26 Thu>
- @end smallexample
- @noindent
- @b{Inactive timestamp}@*
- Just like a plain timestamp, but with square brackets instead of
- angular ones. These timestamps are inactive in the sense that they do
- @emph{not} trigger an entry to show up in the agenda.
- @smallexample
- * Gillian comes late for the fifth time
- [2006-11-01 Wed]
- @end smallexample
- @node Creating timestamps, Deadlines and scheduling, Timestamps, Dates and Times
- @section Creating timestamps
- For Org mode to recognize timestamps, they need to be in the specific
- format. All commands listed below produce timestamps in the correct
- format.
- @table @kbd
- @item C-c .
- Prompt for a date and insert a corresponding timestamp. When the cursor is
- at an existing timestamp in the buffer, the command is used to modify this
- timestamp instead of inserting a new one. When this command is used twice in
- succession, a time range is inserted. With a prefix, also add the current
- time.
- @c
- @item C-c !
- Like @kbd{C-c .}, but insert an inactive timestamp that will not cause
- an agenda entry.
- @c
- @item S-@key{left}@r{/}@key{right}
- Change date at cursor by one day.
- @c
- @item S-@key{up}@r{/}@key{down}
- Change the item under the cursor in a timestamp. The cursor can be on a
- year, month, day, hour or minute. When the timestamp contains a time range
- like @samp{15:30-16:30}, modifying the first time will also shift the second,
- shifting the time block with constant length. To change the length, modify
- the second time.
- @end table
- When Org mode prompts for a date/time, it will accept any string containing
- some date and/or time information, and intelligently interpret the string,
- deriving defaults for unspecified information from the current date and time.
- You can also select a date in the pop-up calendar. See the manual for more
- information on how exactly the date/time prompt works.
- @node Deadlines and scheduling, Clocking work time, Creating timestamps, Dates and Times
- @section Deadlines and scheduling
- A timestamp may be preceded by special keywords to facilitate planning:
- @noindent
- @b{DEADLINE}@*
- Meaning: the task (most likely a TODO item, though not necessarily) is supposed
- to be finished on that date.
- @table @kbd
- @item C-c C-d
- Insert @samp{DEADLINE} keyword along with a stamp, in the line following the
- headline.
- @end table
- On the deadline date, the task will be listed in the agenda. In
- addition, the agenda for @emph{today} will carry a warning about the
- approaching or missed deadline, starting
- @code{org-deadline-warning-days} before the due date, and continuing
- until the entry is marked DONE. An example:
- @smallexample
- *** TODO write article about the Earth for the Guide
- The editor in charge is [[bbdb:Ford Prefect]]
- DEADLINE: <2004-02-29 Sun>
- @end smallexample
- @noindent
- @b{SCHEDULED}@*
- Meaning: you are @i{planning to start working} on that task on the given
- date@footnote{This is quite different from what is normally understood by
- @i{scheduling a meeting}, which is done in Org-mode by just inserting a time
- stamp without keyword.}.
- @table @kbd
- @item C-c C-s
- Insert @samp{SCHEDULED} keyword along with a stamp, in the line following the
- headline.
- @end table
- The headline will be listed under the given date@footnote{It will still
- be listed on that date after it has been marked DONE. If you don't like
- this, set the variable @code{org-agenda-skip-scheduled-if-done}.}. In
- addition, a reminder that the scheduled date has passed will be present
- in the compilation for @emph{today}, until the entry is marked DONE.
- I.e.@: the task will automatically be forwarded until completed.
- @smallexample
- *** TODO Call Trillian for a date on New Years Eve.
- SCHEDULED: <2004-12-25 Sat>
- @end smallexample
- Some tasks need to be repeated again and again. Org mode helps to
- organize such tasks using a so-called repeater in a DEADLINE, SCHEDULED,
- or plain timestamp. In the following example
- @smallexample
- ** TODO Pay the rent
- DEADLINE: <2005-10-01 Sat +1m>
- @end smallexample
- @noindent
- the @code{+1m} is a repeater; the intended interpretation is that the task
- has a deadline on <2005-10-01> and repeats itself every (one) month starting
- from that time.
- @node Clocking work time, , Deadlines and scheduling, Dates and Times
- @section Clocking work time
- Org mode allows you to clock the time you spend on specific tasks in a
- project.
- @table @kbd
- @item C-c C-x C-i
- Start the clock on the current item (clock-in). This inserts the CLOCK
- keyword together with a timestamp. When called with a @kbd{C-u} prefix
- argument, select the task from a list of recently clocked tasks.
- @c
- @item C-c C-x C-o
- Stop the clock (clock-out). This 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}.
- @item C-c C-x C-e
- Update the effort estimate for the current clock task.
- @item C-c C-x C-q
- Cancel the current clock. This is useful if a clock was started by
- mistake, or if you ended up working on something else.
- @item C-c C-x C-j
- Jump to the entry that contains the currently running clock. With a
- @kbd{C-u} prefix arg, select the target task from a list of recently clocked
- tasks.
- @item C-c C-x C-r
- Insert a dynamic block containing a clock
- report as an Org-mode table into the current file. When the cursor is
- at an existing clock table, just update it.
- @smallexample
- #+BEGIN: clocktable :maxlevel 2 :emphasize nil :scope file
- #+END: clocktable
- @end smallexample
- @noindent
- For details about how to customize this view, see @uref{http://orgmode.org/manual/Clocking-work-time.html#Clocking-work-time,the manual}.
- @item C-c C-c
- Update dynamic block at point. The cursor needs to be in the
- @code{#+BEGIN} line of the dynamic block.
- @end table
- The @kbd{l} key may be used in the agenda (@pxref{Weekly/daily agenda}) to
- show which tasks have been worked on or closed during a day.
- @seealso{
- @uref{http://orgmode.org/manual/Dates-and-Times.html#Dates-and-Times,
- Chapter 8 of the manual}@*
- @uref{http://members.optusnet.com.au/~charles57/GTD/org_dates/, Charles
- Cave's Date and Time tutorial}@*
- @uref{http://doc.norang.ca/org-mode.html#Clocking, Bernt Hansen's clocking workflow}}
- @node Capture - Refile - Archive, Agenda Views, Dates and Times, Top
- @chapter Capture - Refile - Archive
- An important part of any organization system is the ability to quickly
- capture new ideas and tasks, and to associate reference material with them.
- Org defines a capture process to create tasks. Once in the system, tasks and
- projects need to be moved around. Moving completed project trees to an
- archive file keeps the system compact and fast.
- @menu
- * Capture:: Capturing new stuff
- * Refile and copy:: Moving a tree from one place to another
- * Archiving:: What to do with finished projects
- @end menu
- @node Capture, Refile and copy, Capture - Refile - Archive, Capture - Refile - Archive
- @section Capture
- Org's lets you store quick notes with little interruption of your work flow.
- You can define templates for new entries and associate them with different
- targets for storing notes.
- @menu
- * Setting up a capture location:: Where notes will be stored
- * Using capture:: Commands to invoke and terminate capture
- * Capture templates:: Define the outline of different note types
- @end menu
- @node Setting up a capture location, Using capture, Capture, Capture
- @unnumberedsubsec Setting up a capture location
- The following customization sets a default target@footnote{Using capture
- templates, you get finer control over capture locations, see
- @ref{Capture templates}.} file for notes, and defines a global
- key for capturing new stuff.
- @example
- (setq org-default-notes-file (concat org-directory "/notes.org"))
- (define-key global-map "\C-cc" 'org-capture)
- @end example
- @node Using capture, Capture templates, Setting up a capture location, Capture
- @unnumberedsubsec Using capture
- @table @kbd
- @item C-c c
- Start a capture process, placing you into a narrowed indirect buffer to edit.
- @item C-c C-c
- Once you are done entering information into the capture buffer,
- @kbd{C-c C-c} will return you to the window configuration before the capture
- process, so that you can resume your work without further distraction.
- @item C-c C-w
- Finalize by moving the entry to a refile location (see section 9.2).
- @item C-c C-k
- Abort the capture process and return to the previous state.
- @end table
- @node Capture templates, , Using capture, Capture
- @unnumberedsubsec Capture templates
- You can use templates to generate different types of capture notes, and to
- store them in different places. For example, if you would like
- to store new tasks under a heading @samp{Tasks} in file @file{TODO.org}, and
- journal entries in a date tree in @file{journal.org} you could
- use:
- @smallexample
- (setq org-capture-templates
- '(("t" "Todo" entry (file+headline "~/org/gtd.org" "Tasks")
- "* TODO %?\n %i\n %a")
- ("j" "Journal" entry (file+datetree "~/org/journal.org")
- "* %?\nEntered on %U\n %i\n %a")))
- @end smallexample
- @noindent
- In these entries, the first string is the key to reach the
- template, the second is a short description. Then follows the type of the
- entry and a definition of the target location for storing the note. Finally,
- the template itself, a string with %-escapes to fill in information based on
- time and context.
- When you call @kbd{M-x org-capture}, Org will prompt for a key to select the
- template (if you have more than one template) and then prepare the buffer like
- @smallexample
- * TODO
- [[file:@var{link to where you were when initiating capture}]]
- @end smallexample
- @noindent
- During expansion of the template, special @kbd{%}-escapes@footnote{If you
- need one of these sequences literally, escape the @kbd{%} with a backslash.}
- allow dynamic insertion of content. Here is a small selection of the
- possibilities, consult the manual for more.
- @smallexample
- %a @r{annotation, normally the link created with @code{org-store-link}}
- %i @r{initial content, the region when capture is called with C-u.}
- %t, %T @r{timestamp, date only, or date and time}
- %u, %U @r{like above, but inactive timestamps}
- @end smallexample
- @node Refile and copy, Archiving, Capture, Capture - Refile - Archive
- @section Refile and copy
- When reviewing the captured data, you may want to refile or copy some of the
- entries into a different list, for example into a project. Cutting, finding
- the right location, and then pasting the note is cumbersome. To simplify
- this process, use the following commands:
- @table @kbd
- @item C-c M-x
- Copy the entry or region at point. This command behaves like
- @code{org-refile}, except that the original note will not be deleted.
- @item C-c C-w
- Refile the entry or region at point. This command offers possible locations
- for refiling the entry and lets you select one with completion. The item (or
- all items in the region) is filed below the target heading as a subitem.@*
- By default, all level 1 headlines in the current buffer are considered to be
- targets, but you can have more complex definitions across a number of files.
- See the variable @code{org-refile-targets} for details.
- @item C-u C-c C-w
- Use the refile interface to jump to a heading.
- @item C-u C-u C-c C-w
- Jump to the location where @code{org-refile} last moved a tree to.
- @end table
- @node Archiving, , Refile and copy, Capture - Refile - Archive
- @section Archiving
- When a project represented by a (sub)tree is finished, you may want
- to move the tree out of the way and to stop it from contributing to the
- agenda. Archiving is important to keep your working files compact and global
- searches like the construction of agenda views fast.
- The most common archiving action is to move a project tree to another file,
- the archive file.
- @table @kbd
- @item C-c C-x C-a
- Archive the current entry using @code{org-archive-default-command}.
- @item C-c C-x C-s@ @r{or short} @ C-c $
- Archive the subtree starting at the cursor position to the location
- given by @code{org-archive-location}.
- @end table
- The default archive location is a file in the same directory as the
- current file, with the name derived by appending @file{_archive} to the
- current file name. For information and examples on how to change this,
- see the documentation string of the variable
- @code{org-archive-location}. There is also an in-buffer option for
- setting this variable, for example
- @smallexample
- #+ARCHIVE: %s_done::
- @end smallexample
- @seealso{
- @uref{http://orgmode.org/manual/Capture-_002d-Refile-_002d-Archive.html#Capture-_002d-Refile-_002d-Archive,
- Chapter 9 of the manual}@*
- @uref{http://orgmode.org/worg/org-tutorials/org-protocol-custom-handler.php,
- Sebastian Rose's tutorial for capturing from a web browser}}@uref{}@*
- @node Agenda Views, Markup, Capture - Refile - Archive, Top
- @chapter Agenda Views
- Due to the way Org works, TODO items, time-stamped items, and tagged
- headlines can be scattered throughout a file or even a number of files. To
- get an overview of open action items, or of events that are important for a
- particular date, this information must be collected, sorted and displayed in
- an organized way. There are several different views, see below.
- The extracted information is displayed in a special @emph{agenda buffer}.
- This buffer is read-only, but provides commands to visit the corresponding
- locations in the original Org files, and even to edit these files remotely.
- Remote editing from the agenda buffer means, for example, that you can
- change the dates of deadlines and appointments from the agenda buffer.
- The commands available in the Agenda buffer are listed in @ref{Agenda
- commands}.
- @menu
- * Agenda files:: Files being searched for agenda information
- * Agenda dispatcher:: Keyboard access to agenda views
- * Built-in agenda views:: What is available out of the box?
- * Agenda commands:: Remote editing of Org trees
- * Custom agenda views:: Defining special searches and views
- @end menu
- @node Agenda files, Agenda dispatcher, Agenda Views, Agenda Views
- @section Agenda files
- The information to be shown is normally collected from all @emph{agenda
- files}, the files listed in the variable
- @code{org-agenda-files}.
- @table @kbd
- @item C-c [
- Add current file to the list of agenda files. The file is added to
- the front of the list. If it was already in the list, it is moved to
- the front. With a prefix argument, file is added/moved to the end.
- @item C-c ]
- Remove current file from the list of agenda files.
- @item C-,
- Cycle through agenda file list, visiting one file after the other.
- @end table
- @node Agenda dispatcher, Built-in agenda views, Agenda files, Agenda Views
- @section The agenda dispatcher
- The views are created through a dispatcher, which should be bound to a
- global key---for example @kbd{C-c a} (@pxref{Installation}). After
- pressing @kbd{C-c a}, an additional letter is required to execute a
- command:
- @table @kbd
- @item a
- The calendar-like agenda (@pxref{Weekly/daily agenda}).
- @item t @r{/} T
- A list of all TODO items (@pxref{Global TODO list}).
- @item m @r{/} M
- A list of headlines matching a TAGS expression (@pxref{Matching
- tags and properties}).
- @item s
- A list of entries selected by a boolean expression of keywords
- and/or regular expressions that must or must not occur in the entry.
- @end table
- @node Built-in agenda views, Agenda commands, Agenda dispatcher, Agenda Views
- @section The built-in agenda views
- @menu
- * Weekly/daily agenda:: The calendar page with current tasks
- * Global TODO list:: All unfinished action items
- * Matching tags and properties:: Structured information with fine-tuned search
- * Search view:: Find entries by searching for text
- @end menu
- @node Weekly/daily agenda, Global TODO list, Built-in agenda views, Built-in agenda views
- @subsection The weekly/daily agenda
- The purpose of the weekly/daily @emph{agenda} is to act like a page of a
- paper agenda, showing all the tasks for the current week or day.
- @table @kbd
- @item C-c a a
- Compile an agenda for the current week from a list of Org files. The agenda
- shows the entries for each day.
- @end table
- Emacs contains the calendar and diary by Edward M. Reingold. Org-mode
- understands the syntax of the diary and allows you to use diary sexp entries
- directly in Org files:
- @smallexample
- * Birthdays and similar stuff
- #+CATEGORY: Holiday
- %%(org-calendar-holiday) ; special function for holiday names
- #+CATEGORY: Ann
- %%(diary-anniversary 5 14 1956)@footnote{Note that the order of the arguments (month, day, year) depends on the setting of @code{calendar-date-style}.} Arthur Dent is %d years old
- %%(diary-anniversary 10 2 1869) Mahatma Gandhi would be %d years old
- @end smallexample
- Org can interact with Emacs appointments notification facility. To add all
- the appointments of your agenda files, use the command
- @code{org-agenda-to-appt}. See the docstring for details.
- @node Global TODO list, Matching tags and properties, Weekly/daily agenda, Built-in agenda views
- @subsection The global TODO list
- The global TODO list contains all unfinished TODO items formatted and
- collected into a single place. Remote editing of TODO items lets you
- can change the state of a TODO entry with a single key press. The commands
- available in the TODO list are described in @ref{Agenda commands}.
- @table @kbd
- @item C-c a t
- Show the global TODO list. This collects the TODO items from all
- agenda files (@pxref{Agenda Views}) into a single buffer.
- @item C-c a T
- Like the above, but allows selection of a specific TODO keyword.
- @end table
- @node Matching tags and properties, Search view, Global TODO list, Built-in agenda views
- @subsection Matching tags and properties
- If headlines in the agenda files are marked with @emph{tags} (@pxref{Tags}),
- or have properties (@pxref{Properties}), you can select headlines
- based on this metadata and collect them into an agenda buffer. The match
- syntax described here also applies when creating sparse trees with @kbd{C-c /
- m}. The commands available in the tags list are described in @ref{Agenda
- commands}.
- @table @kbd
- @item C-c a m
- Produce a list of all headlines that match a given set of tags. The
- command prompts for a selection criterion, which is a boolean logic
- expression with tags, like @samp{+work+urgent-withboss} or
- @samp{work|home} (@pxref{Tags}). If you often need a specific search,
- define a custom command for it (@pxref{Agenda dispatcher}).
- @item C-c a M
- Like @kbd{C-c a m}, but only select headlines that are also TODO items.
- @end table
- @subsubheading Match syntax
- A search string can use Boolean operators @samp{&} for AND and @samp{|} for
- OR. @samp{&} binds more strongly than @samp{|}. Parentheses are currently
- not implemented. Each element in the search is either a tag, a regular
- expression matching tags, or an expression like @code{PROPERTY OPERATOR
- VALUE} with a comparison operator, accessing a property value. Each element
- may be preceded by @samp{-}, to select against it, and @samp{+} is syntactic
- sugar for positive selection. The AND operator @samp{&} is optional when
- @samp{+} or @samp{-} is present. Here are some examples, using only tags.
- @table @samp
- @item +work-boss
- Select headlines tagged @samp{:work:}, but discard those also tagged
- @samp{:boss:}.
- @item work|laptop
- Selects lines tagged @samp{:work:} or @samp{:laptop:}.
- @item work|laptop+night
- Like before, but require the @samp{:laptop:} lines to be tagged also
- @samp{:night:}.
- @end table
- You may also test for properties at the same
- time as matching tags, see the manual for more information.
- @node Search view, , Matching tags and properties, Built-in agenda views
- @subsection Search view
- This agenda view is a general text search facility for Org mode entries.
- It is particularly useful to find notes.
- @table @kbd
- @item C-c a s
- This is a special search that lets you select entries by matching a substring
- or specific words using a boolean logic.
- @end table
- For example, the search string @samp{computer equipment} will find entries
- that contain @samp{computer equipment} as a substring.
- Search view can also search for specific keywords in the entry, using Boolean
- logic. The search string @samp{+computer +wifi -ethernet -@{8\.11[bg]@}}
- will search for note entries that contain the keywords @code{computer}
- and @code{wifi}, but not the keyword @code{ethernet}, and which are also
- not matched by the regular expression @code{8\.11[bg]}, meaning to
- exclude both 8.11b and 8.11g.
- Note that in addition to the agenda files, this command will also search
- the files listed in @code{org-agenda-text-search-extra-files}.
- @node Agenda commands, Custom agenda views, Built-in agenda views, Agenda Views
- @section Commands in the agenda buffer
- Entries in the agenda buffer are linked back to the Org file or diary
- file where they originate. Commands are provided to show and jump to the
- original entry location, and to edit the Org files ``remotely'' from
- the agenda buffer. This is just a selection of the many commands, explore
- the @code{Agenda} menu and the manual for a complete list.
- @table @kbd
- @tsubheading{Motion}
- @item n
- Next line (same as @key{up} and @kbd{C-p}).
- @item p
- Previous line (same as @key{down} and @kbd{C-n}).
- @tsubheading{View/Go to Org file}
- @item mouse-3
- @itemx @key{SPC}
- Display the original location of the item in another window.
- With prefix arg, make sure that the entire entry is made visible in the
- outline, not only the heading.
- @c
- @item @key{TAB}
- Go to the original location of the item in another window. Under Emacs
- 22, @kbd{mouse-1} will also work for this.
- @c
- @item @key{RET}
- Go to the original location of the item and delete other windows.
- @c
- @tsubheading{Change display}
- @item o
- Delete other windows.
- @c
- @item d @r{/} w
- Switch to day/week view.
- @c
- @item f @r{and} b
- Go forward/backward in time to display the following
- @code{org-agenda-current-span} days. For example, if the display covers a
- week, switch to the following/previous week.
- @c
- @item .
- Go to today.
- @c
- @item j
- Prompt for a date and go there.
- @c
- @item v l @ @r{or short} @ l
- Toggle Logbook mode. In Logbook mode, entries that were marked DONE while
- logging was on (variable @code{org-log-done}) are shown in the agenda, as are
- entries that have been clocked on that day. When called with a @kbd{C-u}
- prefix, show all possible logbook entries, including state changes.
- @c
- @item r @r{or} g
- Recreate the agenda buffer, to reflect the changes.
- @item s
- Save all Org buffers in the current Emacs session, and also the locations of
- IDs.
- @tsubheading{Secondary filtering and query editing}
- @item /
- Filter the current agenda view with respect to a tag. You are prompted for a
- letter to select a tag. Press @samp{-} first to select against the tag.
- @item \
- Narrow the current agenda filter by an additional condition.
- @tsubheading{Remote editing (see the manual for many more commands)}
- @item 0--9
- Digit argument.
- @c
- @item t
- Change the TODO state of the item, in the agenda and in the
- org file.
- @c
- @item C-k
- Delete the current agenda item along with the entire subtree belonging
- to it in the original Org file.
- @c
- @item C-c C-w
- Refile the entry at point.
- @c
- @item C-c C-x C-a @ @r{or short} @ a
- Archive the subtree corresponding to the entry at point using the default
- archiving command set in @code{org-archive-default-command}.
- @c
- @item C-c C-x C-s @ @r{or short} @ $
- Archive the subtree corresponding to the current headline.
- @c
- @item C-c C-s
- Schedule this item, with prefix arg remove the scheduling timestamp
- @c
- @item C-c C-d
- Set a deadline for this item, with prefix arg remove the deadline.
- @c
- @item S-@key{right} @r{and} S-@key{left}
- Change the timestamp associated with the current line by one day.
- @c
- @item I
- Start the clock on the current item.
- @c
- @item O / X
- Stop/cancel the previously started clock.
- @item J
- Jump to the running clock in another window.
- @end table
- @node Custom agenda views, , Agenda commands, Agenda Views
- @section Custom agenda views
- The main application of custom searches is the definition of keyboard
- shortcuts for frequently used searches, either creating an agenda
- buffer, or a sparse tree (the latter covering of course only the current
- buffer).
- Custom commands are configured in the variable
- @code{org-agenda-custom-commands}. You can customize this variable, for
- example by pressing @kbd{C-c a C}. You can also directly set it with
- Emacs Lisp in @file{.emacs}. The following example contains all valid
- search types:
- @smalllisp
- @group
- (setq org-agenda-custom-commands
- '(("w" todo "WAITING")
- ("u" tags "+boss-urgent")
- ("v" tags-todo "+boss-urgent")))
- @end group
- @end smalllisp
- @noindent
- The initial string in each entry defines the keys you have to press after the
- dispatcher command @kbd{C-c a} in order to access the command. Usually this
- will be just a single character. The second parameter is the search type,
- followed by the string or regular expression to be used for the matching.
- The example above will therefore define:
- @table @kbd
- @item C-c a w
- as a global search for TODO entries with @samp{WAITING} as the TODO
- keyword
- @item C-c a u
- as a global tags search for headlines marked @samp{:boss:} but not
- @samp{:urgent:}
- @item C-c a v
- as the same search as @kbd{C-c a u}, but limiting the search to
- headlines that are also TODO items
- @end table
- @seealso{
- @uref{http://orgmode.org/manual/Agenda-Views.html#Agenda-Views, Chapter 10 of
- the manual}@*
- @uref{http://orgmode.org/worg/org-tutorials/org-custom-agenda-commands.php,
- Mat Lundin's tutorial about custom agenda commands}@*
- @uref{http://www.newartisans.com/2007/08/using-org-mode-as-a-day-planner.html,
- John Wiegley's setup}}
- @node Markup, Exporting, Agenda Views, Top
- @chapter Markup for rich export
- When exporting Org-mode documents, the exporter tries to reflect the
- structure of the document as accurately as possible in the backend. Since
- export targets like HTML, @LaTeX{}, or DocBook allow much richer formatting,
- Org mode has rules on how to prepare text for rich export. This section
- summarizes the markup rules used in an Org-mode buffer.
- @menu
- * Structural markup elements:: The basic structure as seen by the exporter
- * Images and tables:: Images, tables and caption mechanism
- * Literal examples:: Source code examples with special formatting
- * Include files:: Include additional files into a document
- * Embedded @LaTeX{}:: @LaTeX{} can be freely used inside Org documents
- @end menu
- @node Structural markup elements, Images and tables, Markup, Markup
- @section Structural markup elements
- @menu
- * Document title:: Where the title is taken from
- * Headings and sections:: The document structure as seen by the exporter
- * Table of contents:: The if and where of the table of contents
- * Paragraphs:: Paragraphs
- * Emphasis and monospace:: Bold, italic, etc.
- * Comment lines:: What will *not* be exported
- @end menu
- @node Document title, Headings and sections, Structural markup elements, Structural markup elements
- @subheading Document title
- @noindent
- The title of the exported document is taken from the special line
- @smallexample
- #+TITLE: This is the title of the document
- @end smallexample
- @node Headings and sections, Table of contents, Document title, Structural markup elements
- @subheading Headings and sections
- The outline structure of the document as described in @ref{Document
- Structure}, forms the basis for defining sections of the exported document.
- However, since the outline structure is also used for (for example) lists of
- tasks, only the first three outline levels will be used as headings. Deeper
- levels will become itemized lists. You can change the location of this
- switch globally by setting the variable @code{org-export-headline-levels}, or on a
- per-file basis with a line
- @smallexample
- #+OPTIONS: H:4
- @end smallexample
- @node Table of contents, Paragraphs, Headings and sections, Structural markup elements
- @subheading Table of contents
- The table of contents is normally inserted directly before the first headline
- of the file.
- @smallexample
- #+OPTIONS: toc:2 (only to two levels in TOC)
- #+OPTIONS: toc:nil (no TOC at all)
- @end smallexample
- @node Paragraphs, Emphasis and monospace, Table of contents, Structural markup elements
- @subheading Paragraphs, line breaks, and quoting
- Paragraphs are separated by at least one empty line. If you need to enforce
- a line break within a paragraph, use @samp{\\} at the end of a line.
- To keep the line breaks in a region, but otherwise use normal formatting, you
- can use this construct, which can also be used to format poetry.
- @smallexample
- #+BEGIN_VERSE
- Great clouds overhead
- Tiny black birds rise and fall
- Snow covers Emacs
- -- AlexSchroeder
- #+END_VERSE
- @end smallexample
- When quoting a passage from another document, it is customary to format this
- as a paragraph that is indented on both the left and the right margin. You
- can include quotations in Org-mode documents like this:
- @smallexample
- #+BEGIN_QUOTE
- Everything should be made as simple as possible,
- but not any simpler -- Albert Einstein
- #+END_QUOTE
- @end smallexample
- If you would like to center some text, do it like this:
- @smallexample
- #+BEGIN_CENTER
- Everything should be made as simple as possible, \\
- but not any simpler
- #+END_CENTER
- @end smallexample
- @node Emphasis and monospace, Comment lines, Paragraphs, Structural markup elements
- @subheading Emphasis and monospace
- You can make words @b{*bold*}, @i{/italic/}, _underlined_, @code{=code=}
- and @code{~verbatim~}, and, if you must, @samp{+strike-through+}. Text
- in the code and verbatim string is not processed for Org-mode specific
- syntax, it is exported verbatim. To insert a horizontal rules, use a line
- consisting of only dashes, and at least 5 of them.
- @node Comment lines, , Emphasis and monospace, Structural markup elements
- @subheading Comment lines
- Lines starting with zero or more whitespace characters followed by @samp{#}
- and a whitespace are treated as comments and, as such, are not exported.
- Likewise, regions surrounded by @samp{#+BEGIN_COMMENT}
- ... @samp{#+END_COMMENT} are not exported.
- Finally, a @samp{COMMENT} keyword at the beginning of an entry, but after any
- other keyword or priority cookie, comments out the entire subtree. The
- command below helps changing the comment status of a headline.
- @table @kbd
- @item C-c ;
- Toggle the COMMENT keyword at the beginning of an entry.
- @end table
- @node Images and tables, Literal examples, Structural markup elements, Markup
- @section Images and Tables
- For Org mode tables, the lines before the first horizontal separator line
- will become table header lines. You can use the following lines somewhere
- before the table to assign a caption and a label for cross references, and in
- the text you can refer to the object with @code{[[tab:basic-data]]}:
- @smallexample
- #+CAPTION: This is the caption for the next table (or link)
- #+NAME: tbl:basic-data
- | ... | ...|
- |-----|----|
- @end smallexample
- Some backends allow you to directly include images into the exported
- document. Org does this, if a link to an image files does not have
- a description part, for example @code{[[./img/a.jpg]]}. If you wish to
- define a caption for the image and maybe a label for internal cross
- references, you sure that the link is on a line by itself precede it with:
- @smallexample
- #+CAPTION: This is the caption for the next figure link (or table)
- #+NAME: fig:SED-HR4049
- [[./img/a.jpg]]
- @end smallexample
- The same caption mechanism applies to other structures than images and tables
- (e.g., @LaTeX{} equations, source code blocks), provided the chosen export
- back-end supports them.
- @node Literal examples, Include files, Images and tables, Markup
- @section Literal examples
- You can include literal examples that should not be subjected to
- markup. Such examples will be typeset in monospace, so this is well suited
- for source code and similar examples.
- @smallexample
- #+BEGIN_EXAMPLE
- Some example from a text file.
- #+END_EXAMPLE
- @end smallexample
- For simplicity when using small examples, you can also start the example
- lines with a colon followed by a space. There may also be additional
- whitespace before the colon:
- @smallexample
- Here is an example
- : Some example from a text file.
- @end smallexample
- For source code from a programming language, or any other text
- that can be marked up by font-lock in Emacs, you can ask for it to
- look like the fontified Emacs buffer
- @smallexample
- #+BEGIN_SRC emacs-lisp
- (defun org-xor (a b)
- "Exclusive or."
- (if a (not b) b))
- #+END_SRC
- @end smallexample
- To edit the example in a special buffer supporting this language, use
- @kbd{C-c '} to both enter and leave the editing buffer.
- @node Include files, Embedded @LaTeX{}, Literal examples, Markup
- @section Include files
- During export, you can include the content of another file. For example, to
- include your @file{.emacs} file, you could use:
- @smallexample
- #+INCLUDE: "~/.emacs" src emacs-lisp
- @end smallexample
- @noindent
- The optional second and third parameter are the markup (i.e., @samp{example}
- or @samp{src}), and, if the markup is @samp{src}, the language for formatting
- the contents. The markup is optional, if it is not given, the text will be
- assumed to be in Org mode format and will be processed normally. File-links
- will be interpreted as well:
- @smallexample
- #+INCLUDE: "./otherfile.org::#my_custom_id" :only-contents t
- @end smallexample
- @noindent
- @kbd{C-c '} will visit the included file.
- @node Embedded @LaTeX{}, , Include files, Markup
- @section Embedded @LaTeX{}
- For scientific notes which need to be able to contain mathematical symbols
- and the occasional formula, Org-mode supports embedding @LaTeX{} code into
- its files. You can directly use TeX-like syntax for special symbols, enter
- formulas and entire @LaTeX{} environments.
- @smallexample
- Angles are written as Greek letters \alpha, \beta and \gamma. The mass if
- the sun is M_sun = 1.989 x 10^30 kg. The radius of the sun is R_@{sun@} =
- 6.96 x 10^8 m. If $a^2=b$ and $b=2$, then the solution must be either
- $a=+\sqrt@{2@}$ or $a=-\sqrt@{2@}$.
- \begin@{equation@}
- x=\sqrt@{b@}
- \end@{equation@}
- @end smallexample
- @noindent
- With
- @uref{http://orgmode.org/manual/LaTeX-fragments.html#LaTeX-fragments,special
- setup}, @LaTeX{} snippets will be included as images when exporting to HTML.
- @seealso{
- @uref{http://orgmode.org/manual/Markup.html#Markup, Chapter 11 of the manual}}
- @node Exporting, Publishing, Markup, Top
- @chapter Exporting
- Org-mode documents can be exported into a variety of other formats: ASCII
- export for inclusion into emails, HTML to publish on the web, @LaTeX{}/PDF
- for beautiful printed documents and DocBook to enter the world of many other
- formats using DocBook tools. There is also export to iCalendar format so
- that planning information can be incorporated into desktop calendars.
- @menu
- * Export options:: Per-file export settings
- * The export dispatcher:: How to access exporter commands
- * ASCII/Latin-1/UTF-8 export:: Exporting to flat files with encoding
- * HTML export:: Exporting to HTML
- * @LaTeX{} and PDF export:: Exporting to @LaTeX{}, and processing to PDF
- * iCalendar export:: Exporting to iCalendar
- @end menu
- @node Export options, The export dispatcher, Exporting, Exporting
- @section Export options
- The exporter recognizes special lines in the buffer which provide additional
- information. These lines may be put anywhere in the file. The whole set of
- lines can be inserted into the buffer with @kbd{C-c C-e #}.
- @table @kbd
- @item C-c C-e #
- Insert template with export options, see example below.
- @end table
- @smallexample
- #+TITLE: the title to be shown
- #+AUTHOR: the author (default taken from @code{user-full-name})
- #+DATE: a date, fixed, or an Org timestamp
- #+EMAIL: his/her email address (default from @code{user-mail-address})
- #+LANGUAGE: language, e.g.@: @samp{en} (@code{org-export-default-language})
- #+OPTIONS: H:2 num:t toc:t \n:nil ::t |:t ^:t f:t tex:t ...
- @end smallexample
- @node The export dispatcher, ASCII/Latin-1/UTF-8 export, Export options, Exporting
- @section The export dispatcher
- All export commands can be reached using the export dispatcher, which is
- a prefix key that prompts for an additional key specifying the command.
- Normally the entire file is exported, but if a region is active, it will be
- exported instead.
- @table @kbd
- @item C-c C-e
- Dispatcher for export and publishing commands.
- @end table
- @node ASCII/Latin-1/UTF-8 export, HTML export, The export dispatcher, Exporting
- @section ASCII/Latin-1/UTF-8 export
- ASCII export produces a simple and very readable version of an Org-mode
- file, containing only plain ASCII. Latin-1 and UTF-8 export augment the file
- with special characters and symbols available in these encodings.
- @table @kbd
- @item C-c C-e t a @ @ @r{and} @ @ C-c C-e t A
- Export as ASCII file or temporary buffer.
- @item C-c C-e t n @ @ @r{and} @ @ C-c C-e t N
- Like the above commands, but use Latin-1 encoding.
- @item C-c C-e t u @ @ @r{and} @ @ C-c C-e t U
- Like the above commands, but use UTF-8 encoding.
- @end table
- @node HTML export, @LaTeX{} and PDF export, ASCII/Latin-1/UTF-8 export, Exporting
- @section HTML export
- @table @kbd
- @item C-c C-e h h
- Export as HTML file @file{myfile.html}.
- @item C-c C-e h o
- Export as HTML file and immediately open it with a browser.
- @end table
- To insert HTML that should be copied verbatim to
- the exported file use either
- @smallexample
- #+HTML: Literal HTML code for export
- @end smallexample
- @noindent
- or
- @smallexample
- #+BEGIN_EXPORT html
- All lines between these markers are exported literally
- #+END_HTML
- @end smallexample
- @node @LaTeX{} and PDF export, iCalendar export, HTML export, Exporting
- @section @LaTeX{} and PDF export
- @table @kbd
- @item C-c C-e l l
- Export as @LaTeX{} file @file{myfile.tex}.
- @item C-c C-e l p
- Export as @LaTeX{} and then process to PDF.
- @item C-c C-e l o
- Export as @LaTeX{} and then process to PDF, then open the resulting PDF file.
- @end table
- By default, the @LaTeX{} output uses the class @code{article}. You can
- change this by adding an option like @code{#+LATEX_CLASS: myclass} in your
- file. The class must be listed in @code{org-latex-classes}.
- Embedded @LaTeX{} as described in @ref{Embedded @LaTeX{}}, will be correctly
- inserted into the @LaTeX{} file. Similarly to the HTML exporter, you can use
- @code{#+LATEX:} and @code{#+BEGIN_EXPORT latex ... #+END_EXPORT} construct to
- add verbatim @LaTeX{} code.
- @node iCalendar export, , @LaTeX{} and PDF export, Exporting
- @section iCalendar export
- @table @kbd
- @item C-c C-e c f
- Create iCalendar entries for the current file in a @file{.ics} file.
- @item C-c C-e c c
- Create a single large iCalendar file from all files in
- @code{org-agenda-files} and write it to the file given by
- @code{org-icalendar-combined-agenda-file}.
- @end table
- @seealso{
- @uref{http://orgmode.org/manual/Exporting.html#Exporting, Chapter 12 of the manual}@*
- @uref{http://orgmode.org/worg/org-tutorials/images-and-xhtml-export.php,
- Sebastian Rose's image handling tutorial}@*
- @uref{http://orgmode.org/worg/org-tutorials/org-latex-export.php, Thomas
- Dye's LaTeX export tutorial}
- @uref{http://orgmode.org/worg/org-tutorials/org-beamer/tutorial.php, Eric
- Fraga's BEAMER presentation tutorial}}
- @node Publishing, Working With Source Code, Exporting, Top
- @chapter Publishing
- Org includes a publishing management system that allows you to configure
- automatic HTML conversion of @emph{projects} composed of interlinked org
- files. You can also configure Org to automatically upload your exported HTML
- pages and related attachments, such as images and source code files, to a web
- server. For detailed instructions about setup, see the manual.
- Here is an example:
- @smalllisp
- (setq org-publish-project-alist
- '(("org"
- :base-directory "~/org/"
- :publishing-directory "~/public_html"
- :section-numbers nil
- :table-of-contents nil
- :style "<link rel=\"stylesheet\"
- href=\"../other/mystyle.css\"
- type=\"text/css\"/>")))
- @end smalllisp
- @table @kbd
- @item C-c C-e P x
- Prompt for a specific project and publish all files that belong to it.
- @item C-c C-e P p
- Publish the project containing the current file.
- @item C-c C-e P f
- Publish only the current file.
- @item C-c C-e P a
- Publish every project.
- @end table
- Org uses timestamps to track when a file has changed. The above functions
- normally only publish changed files. You can override this and force
- publishing of all files by giving a prefix argument to any of the commands
- above.
- @seealso{
- @uref{http://orgmode.org/manual/Publishing.html#Publishing, Chapter 13 of the
- manual}@*
- @uref{http://orgmode.org/worg/org-tutorials/org-publish-html-tutorial.php,
- Sebastian Rose's publishing tutorial}@*
- @uref{http://orgmode.org/worg/org-tutorials/org-jekyll.php, Ian Barton's
- Jekyll/blogging setup}}
- @node Working With Source Code, Miscellaneous, Publishing, Top
- @chapter Working with source code
- Org-mode provides a number of features for working with source code,
- including editing of code blocks in their native major-mode, evaluation of
- code blocks, tangling of code blocks, and exporting code blocks and their
- results in several formats.
- @subheading Structure of Code Blocks
- The structure of code blocks is as follows:
- @example
- #+NAME: <name>
- #+BEGIN_SRC <language> <switches> <header arguments>
- <body>
- #+END_SRC
- @end example
- Where @code{<name>} is a string used to name the code block,
- @code{<language>} specifies the language of the code block
- (e.g.@: @code{emacs-lisp}, @code{shell}, @code{R}, @code{python}, etc...),
- @code{<switches>} can be used to control export of the code block,
- @code{<header arguments>} can be used to control many aspects of code block
- behavior as demonstrated below, and @code{<body>} contains the actual source
- code.
- @subheading Editing source code
- Use @kbd{C-c '} to edit the current code block. This brings up a language
- major-mode edit buffer containing the body of the code block. Saving this
- buffer will write the new contents back to the Org buffer. Use @kbd{C-c '}
- again to exit the edit buffer.
- @subheading Evaluating code blocks
- Use @kbd{C-c C-c} to evaluate the current code block and insert its results
- in the Org-mode buffer. By default, evaluation is only turned on for
- @code{emacs-lisp} code blocks, however support exists for evaluating blocks
- in many languages. For a complete list of supported languages see the
- manual. The following shows a code block and its results.
- @example
- #+BEGIN_SRC emacs-lisp
- (+ 1 2 3 4)
- #+END_SRC
- #+RESULTS:
- : 10
- @end example
- @subheading Extracting source code
- Use @kbd{C-c C-v t} to create pure source code files by extracting code from
- source blocks in the current buffer. This is referred to as ``tangling''---a
- term adopted from the literate programming community. During ``tangling'' of
- code blocks their bodies are expanded using @code{org-babel-expand-src-block}
- which can expand both variable and ``noweb'' style references. In order to
- tangle a code block it must have a @code{:tangle} header argument, see the
- manual for details.
- @subheading Library of Babel
- Use @kbd{C-c C-v l} to load the code blocks from an Org-mode files into the
- ``Library of Babel'', these blocks can then be evaluated from any Org-mode
- buffer. A collection of generally useful code blocks is accessible through
- Org-mode’s community-driven documentation on
- @uref{http://orgmode.org/worg/library-of-babel.html,Worg}.
- @subheading Header Arguments
- Many aspects of the evaluation and export of code blocks are controlled
- through header arguments. These can be specified globally, at the file
- level, at the outline subtree level, and at the individual code block level.
- The following describes some of the header arguments.
- @table @code
- @item :var
- The @code{:var} header argument is used to pass arguments to code blocks.
- The values passed to arguments can be literal values, values from org-mode
- tables and literal example blocks, or the results of other named code blocks.
- @item :results
- The @code{:results} header argument controls the @emph{collection},
- @emph{type}, and @emph{handling} of code block results. Values of
- @code{output} or @code{value} (the default) specify how results are collected
- from a code block's evaluation. Values of @code{vector}, @code{scalar}
- @code{file} @code{raw} @code{html} @code{latex} and @code{code} specify the
- type of the results of the code block which dictates how they will be
- incorporated into the Org-mode buffer. Values of @code{silent},
- @code{replace}, @code{prepend}, and @code{append} specify handling of code
- block results, specifically if and how the results should be inserted into
- the Org-mode buffer.
- @item :session
- A header argument of @code{:session} will cause the code block to be
- evaluated in a persistent interactive inferior process in Emacs. This allows
- for persisting state between code block evaluations, and for manual
- inspection of the results of evaluation.
- @item :exports
- Any combination of the @emph{code} or the @emph{results} of a block can be
- retained on export, this is specified by setting the @code{:results} header
- argument to @code{code} @code{results} @code{none} or @code{both}.
- @item :tangle
- A header argument of @code{:tangle yes} will cause a code block's contents to
- be tangled to a file named after the filename of the Org-mode buffer. An
- alternate file name can be specified with @code{:tangle filename}.
- @item :cache
- A header argument of @code{:cache yes} will cause associate a hash of the
- expanded code block with the results, ensuring that code blocks are only
- re-run when their inputs have changed.
- @item :noweb
- A header argument of @code{:noweb yes} will expand ``noweb'' style references
- on evaluation and tangling.
- @item :file
- Code blocks which output results to files (e.g.@: graphs, diagrams and figures)
- can accept a @code{:file filename} header argument in which case the results
- are saved to the named file, and a link to the file is inserted into the
- Org-mode buffer.
- @end table
- @seealso{
- @uref{http://orgmode.org/manual/Literal-examples.html#Literal-examples,
- Chapter 11.3 of the manual}@*
- @uref{http://orgmode.org/worg/org-contrib/babel/index.php,
- The Babel site on Worg}}
- @node Miscellaneous, GNU Free Documentation License, Working With Source Code, Top
- @chapter Miscellaneous
- @menu
- * Completion:: M-TAB knows what you need
- * Clean view:: Getting rid of leading stars in the outline
- * MobileOrg:: Org-mode on the iPhone
- @end menu
- @node Completion, Clean view, Miscellaneous, Miscellaneous
- @section Completion
- Org supports in-buffer completion with @kbd{M-@key{TAB}}. This type of
- completion does not make use of the minibuffer. You simply type a few
- letters into the buffer and use the key to complete text right there. For
- example, this command will complete @TeX{} symbols after @samp{\}, TODO
- keywords at the beginning of a headline, and tags after @samp{:} in a
- headline.
- @node Clean view, MobileOrg, Completion, Miscellaneous
- @section A cleaner outline view
- Some people find it noisy and distracting that the Org headlines start with a
- potentially large number of stars, and that text below the headlines is not
- indented. While this is no problem when writing a @emph{book-like} document
- where the outline headings are really section headings, in a more
- @emph{list-oriented} outline, indented structure is a lot cleaner:
- @smallexample
- @group
- * Top level headline | * Top level headline
- ** Second level | * Second level
- *** 3rd level | * 3rd level
- some text | some text
- *** 3rd level | * 3rd level
- more text | more text
- * Another top level headline | * Another top level headline
- @end group
- @end smallexample
- @noindent
- This kind of view can be achieved dynamically at display time using
- @code{org-indent-mode}, which will prepend intangible space to each line.
- You can turn on @code{org-indent-mode} for all files by customizing the
- variable @code{org-startup-indented}, or you can turn it on for individual
- files using
- @smallexample
- #+STARTUP: indent
- @end smallexample
- If you want a similar effect in earlier version of Emacs and/or Org, or if
- you want the indentation to be hard space characters so that the plain text
- file looks as similar as possible to the Emacs display, Org supports you by
- helping to indent (with @key{TAB}) text below each headline, by hiding
- leading stars, and by only using levels 1, 3, etc to get two characters
- indentation for each level. To get this support in a file, use
- @smallexample
- #+STARTUP: hidestars odd
- @end smallexample
- @node MobileOrg, , Clean view, Miscellaneous
- @section MobileOrg
- @i{MobileOrg} is the name of the mobile companion app for Org mode, currently
- available for iOS and for Android. @i{MobileOrg} offers offline viewing and
- capture support for an Org mode system rooted on a ``real'' computer. It
- does also allow you to record changes to existing entries.
- The @uref{http://mobileorg.ncogni.to/, iOS implementation} for the
- @i{iPhone/iPod Touch/iPad} series of devices, was developed by Richard
- Moreland. Android users should check out
- @uref{http://wiki.github.com/matburt/mobileorg-android/, MobileOrg Android}
- by Matt Jones. The two implementations are not identical but offer similar
- features.
- @seealso{
- @uref{http://orgmode.org/manual/Miscellaneous.html#Miscellaneous, Chapter 15
- of the manual}@*
- @uref{http://orgmode.org/manual/MobileOrg.html#MobileOrg, Appendix B of the
- manual}@*
- @uref{http://orgmode.org/orgcard.pdf,Key reference card}}
- @node GNU Free Documentation License, , Miscellaneous, Top
- @appendix GNU Free Documentation License
- @include doclicense.texi
- @bye
- @c Local variables:
- @c fill-column: 77
- @c End:
- @c LocalWords: webdavhost pre
|