Skip to content

Latest commit

 

History

History
1262 lines (957 loc) · 39.4 KB

org-mode-teaser.org

File metadata and controls

1262 lines (957 loc) · 39.4 KB

Org-mode Teaser Demo

1 Org-mode by Examples

keydescription
MMeta (often: Alt)
CCtrl
SShift
TABTabulator
RETReturn, Enter, CRLF
UParrow: up
DOWNarrow: down
LEFTarrow: left
RIGHTarrow: right
SPCSpace

1.1 activating Org-mode

Activation of Org-mode (external Tutorial):

(require 'org-install)
(add-to-list 'auto-mode-alist '("\\.org$" . org-mode))
(define-key global-map "\C-cl" 'org-store-link)
(define-key global-map "\C-ca" 'org-agenda)
(setq org-log-done t)
  • Org-mode minor mode (structure editing and lists) orgstruct-mode (docu)

1.2 Org-mode documentation

1.2.1 In case of Org-mode documentation does not work

For using Org-mode from a local git repository: add following to your configuration:

(add-to-list 'Info-additional-directory-list "~/.emacs.d/<YOURDIRECTORY>/org-mode/doc/")

OR: install Org-mode documentation to your system with:

cd $ORGMODEDIRECTORY && sudo make install-info

1.3 text formatting syntax (docu)

small example

1.4 outlining (docu)

  • headlines start with asterisks
  • levels
  • visibility
    • TAB visibility cycling
    • S-TAB change buffer visibility
    • C-c C-r reveal context
    • per-file visibility #+STARTUP: overview and so on: (docu)
    • C-u C-u TAB restore startup visibility
  • motion
    • C-c C-n next heading
    • C-c C-p previous heading
    • C-c C-u one level up
    • C-c C-j jump (goto)
    • C-c C-f forward same level
    • C-c C-b backward same level
    • M-x org-goto nifty inerface for searching within an Org-mode buffer
  • create basic elements
    • C-RET new heading below
  • move elements
    • M-UP/DOWN move up/down with subitems
    • M-LEFT promote
    • M-RIGHT demote
    • M-S-LEFT/RIGHT promote/demote with subitems
  • C-c C-c toggle/modify things (docu)
    • checkbox: activate/deactivate, heading: tags, tables: re-calculate, jump footnote and back, update tables, update TODO-count, …

1.4.1 Creating

  • [ ] DEMO: create headings

1.4.2 Using

  • [ ] DEMO: visibility cycling
  • [ ] DEMO: move headings

This is a quite boring text just to show some body content.

1.4.2.1 This is the 1st heading

This is a quite boring text just to show some body content.

1.4.2.1.1 Sub-heading 1

This is a quite boring text just to show some body content.

1.4.2.2 This is another heading

This is a quite boring text just to show some body content.

1.4.2.2.1 Sub-heading 2

This is a quite boring text just to show some body content.

1.4.2.3 This is yet another heading

1.4.2.4 OK, now this is getting boring :-)

1.4.3 encryption

  • whole Org-mode files
  • selective headlines using :crypt:
  • org-decrypt-entry

1.4.4 time stamps when taking notes (docu)

  • C-c C-x . start timer
  • C-c C-x - insert list item with time
  • M-<RET> insert heading with time
  • ~C-c C-x ,~ toggle timer pause
  • ~C-u C-c C-x ,~ stop timer
  • also handy:
    • C-c C-x ; set countdown

1.5 sparse trees (docu)

  • Filtering
    • C-c / Filter in sparse trees
    • C-c / r Filter using Regular Expressions
  • Moving in results
    • M-g n goto next match
    • M-g o goto previous match
  • docu: property search
  • C-c a L time sorted view of buffer

1.6 lists (docu)

  • M-RET new list item
  • M-S-RET create checkbox
  • M-LEFT/RIGHT/UP/DOWN move item
  • C-c - cycle item type OR turn into list item

1.6.1 examples

simple list:

  • Emacs
  • Org-mode
  • Lists

enumerate:

  1. Emacs
  2. Org-mode
  3. Lists

check lists:

1.6.2 Simple

  • [ ] DEMO: create simple lists and move items around

1.6.3 Checklists

  • M-S-RET new item with checkbox
  • C-c C-* checkboxes become TODOs
  • C-c C-C toggle checkboxes between [X] and [ ]
  • C-u C-u C-c C-C toggle checkboxes between [ ] and [-]
  • Clean out garage
    1. [ ] get stuff out
      • [ ] be careful with that axe, Eugene
    2. [ ] get rid of old stuff
      • using eBay?
      • try to use rubbish as birthday presents for family
    3. [ ] repaint garage
    4. [ ] put stuff back in

1.6.4 Headings with TODO items

1.6.4.1 TODO Clean out garage [0/4]

1.6.4.1.1 TODO get stuff out
  • be careful with that axe, Eugene
1.6.4.1.2 TODO get rid of old stuff
  • using eBay?
  • try to use rubbish as birthday presents for family
1.6.4.1.3 TODO repaint garage
1.6.4.1.4 TODO put stuff back in

1.6.5 Taking notes during a meeting or similar (docu)

  • C-c C-x . (re)start a timer
  • C-c C-x - or M-<RET> insert description list item with the current relative time
  • ~C-c C-x ,~ pause/continue
  • ~C-u C-c C-x ,~ stop timer

Bonus feature:

  • C-c C-x ; count down timer

1.7 drawers, properties, columns (docu)

  • meta-data on headings
  • standard drawers :PROPERTIES: and :LOGBOOK:
  • ends with :END:
  • FIXXME
  • C-c C-z timed LOGBOOK entry
  • :ID: label define ID in PROPERTIES
  • hint: the property CATEGORY gets inherited and displayed on the agenda:

1.7.1 NEXT Test with category property

1.8 blocks (docu)

  • encapsulating content with begin…end structure
  • <s + TAB easy templates (docu)
Some example from a text file.
  • more of it in the Babel section later on
  • differences between non-source-code blocks (docu):
typeindendationblank linesline breaksOrg syntaxnotes
examplepreservedpreservedpreservedignoredlike SRC block without a language
versepreservedpreservedpreservedrecognized
quotepreservedpreservednot preservedrecognizedfor quoting text
centernot preservedpreservednot preservedrecognized

1.8.1 examples for non-source-code blocks

This is a test.

Demonstration of long lines within a non-source-code block like this or that or something else which is quite good.

   Space upfront

   [[id:foobar]] *bold* /italic/

This is a test.

Demonstration of long lines within a non-source-code block like this or that or something else which is quite good.

Space upfront

id:foobar bold italic

This is a test.

Demonstration of long lines within a non-source-code block like this or that or something else which is quite good.

Space upfront

id:foobar bold italic

1.9 links (docu)

[[link]]
[[link][description]]

target:

# <<link>>
  • id:myexampleid
  • ~/.zshrc.local
  • http://orgmode.org
  • custom links: contact:John Smith
  • C-c l store link (also in many other buffer types: docu)
  • C-c C-l inserting link (or edit existing link)
  • C-u C-c C-l file link (shortcut)
  • C-c C-o open link
  • “radio targets” are auto-links created by target like <<<target name>>>
    • all occurrences of “target name” will be links
  • C-c C-x C-v toggle show inline images
  • C-c % push position into ring
  • C-c & goto last saved position in ring
  • footnotes (docu)

myotherlabel This is a footnote from reference above. 2 This is a footnote with a simple number as label.

  • many external link types see docu

Footnotes:

mylabelgreat content here

great content here

1.9.1 heading with PROPERTIES drawer containing ID

foo bar

Footnotes:

mylabelgreat content here

great content here

1.10 states; TODO items (docu)

  • C-c C-t rotate TODO state
  • C-c / t sparse tree with TODOs
  • C-c a t global TODO list in agenda
  • C-S-RET new TODO heading
  • per-file keywords #+TODO: TODO(t) FEEDBACK(f) | DONE(d!) CANCELED(c!@)
    • ! timestamp
    • @ add note

Footnotes:

mylabelgreat content here

great content here

1.10.1 making dependencies explicit

  • simple, ordered method with PROPERTIES drawer:
:ORDERED: t
  • C-c C-x o toggle ORDERED property
  • see only tasks that are not depending on other open tasks
    • see only things that can be done now
  • http://orgmode.org/worg/org-contrib/org-depend.html
  • to define workflows (see demo below)
  • task dependencies with org-depend (docu)
    • :BLOCKER: an-heading-id another-heading-id define blocking task
    • :TRIGGER: chain-siblings(NEXT) define trigger for setting NEXT
    • :TRIGGER: my-heading-id(NEXT) define trigger for specific heading to set to NEXT

Footnotes:

mylabelgreat content here

great content here

1.10.1.1 example with chain siblings

Footnotes:

mylabelgreat content here

great content here
1.10.1.1.1 NEXT buy bike

Footnotes:

mylabelgreat content here

great content here
1.10.1.1.2 take tour

Footnotes:

mylabelgreat content here

great content here
1.10.1.1.3 goto hospital

Footnotes:

mylabelgreat content here

great content here

1.10.1.2 example with triggers and blockers

Footnotes:

mylabelgreat content here

great content here
1.10.1.2.1 NEXT go for shopping

After setting this task to DONE, enjoying new clothes get to state NEXT and looking out for next errands to TODO.

Footnotes:

mylabelgreat content here

great content here
1.10.1.2.2 enjoy new clothes

Footnotes:

mylabelgreat content here

great content here
1.10.1.2.3 look out for next errands

I can not finish this task as long as I did not enjoy my new clothes.

Footnotes:

mylabelgreat content here

great content here

1.10.2 logging state changes (docu)

  • ! in todo state definition
  • org-log-into-drawer for setting default behavior

Footnotes:

mylabelgreat content here

great content here

1.10.3 habits (docu)

  • enable habits module by customizing the variable org-modules
  • TODO items with property STYLE is set to the value habit:
:STYLE: habit
** TODO Shave
   SCHEDULED: <2009-10-17 Sat .+2d/4d>
   - State "DONE"       from "TODO"       [2009-10-15 Thu]
   - State "DONE"       from "TODO"       [2009-10-12 Mon]
   - State "DONE"       from "TODO"       [2009-10-10 Sat]
   - State "DONE"       from "TODO"       [2009-10-04 Sun]
   - State "DONE"       from "TODO"       [2009-10-02 Fri]
   - State "DONE"       from "TODO"       [2009-09-29 Tue]
   - State "DONE"       from "TODO"       [2009-09-25 Fri]
   - State "DONE"       from "TODO"       [2009-09-19 Sat]
   - State "DONE"       from "TODO"       [2009-09-16 Wed]
   - State "DONE"       from "TODO"       [2009-09-12 Sat]
   :PROPERTIES:
   :STYLE:    habit
   :LAST_REPEAT: [2009-10-19 Mon 00:36]
   :END:

Footnotes:

mylabelgreat content here

great content here

1.10.4 priorities (docu)

  • ~C-c ,~ set priorities
  • S-UP/DOWN change priority
  • [A], [B], [C]
  • no priority is ordered like [B]

Footnotes:

mylabelgreat content here

great content here

1.10.4.1 TODO [#A] example

Footnotes:

mylabelgreat content here

great content here

1.10.5 breaking down in subtasks (docu)

  • for TODO-headings: stat cookies [/] or [%] (will be [1/3] or [33%])
  • also possible:
    • for checkboxes
    • recursive
    • mark entry to DONE if all children are DONE

Footnotes:

mylabelgreat content here

great content here

1.10.5.1 TODO example [1/3] [33%]

Footnotes:

mylabelgreat content here

great content here
1.10.5.1.1 DONE subtask 1

Footnotes:

mylabelgreat content here

great content here
1.10.5.1.2 TODO subtask 2

Footnotes:

mylabelgreat content here

great content here
1.10.5.1.3 TODO subtask 3

Footnotes:

mylabelgreat content here

great content here

1.11 tags (docu)

  • inherited tags
  • per-file definition of tags:
#+TAGS: { @work(w) @home(h) } online(o) kids(k)
  • per-file tags for all entries:
#+FILETAGS: :this:that:foo:
  • C-c C-q set tags
  • C-c C-c set tags if cursor is on a heading
  • C-c / m search for tags in sparse tree
  • C-c a m global list of tag matching
  • C-c a M same but check only TODO items
  • syntax (docu)
    • +boss+urgent AND
    • boss|urgent OR
    • +boss+urgent-project combination of tags
    • ~work+TODO=”WAITING”|home+TODO=”WAITING”~ Waiting tasks both at work and at home

Footnotes:

mylabelgreat content here

great content here

1.11.1 example

Footnotes:

mylabelgreat content here

great content here

1.11.2 Tag groups (docu)

  • searching for a group tag return matches of all member tags as well
  • example:
(setq org-tag-alist '((:startgroup . nil)
                      ("@read" . nil)
                      (:grouptags . nil)
                      ("@read_book" . nil)
                      ("@read_ebook" . nil)
                      (:endgroup . nil)))
  • searching for “@read” also returns “@read_book” and “@read_ebook”

Footnotes:

mylabelgreat content here

great content here

1.12 tables simple (docu)

  • C-c C-c update table
  • TAB move next field
  • RET next row
  • M-LEFT/RIGHT/UP/DOWN moving rows/columns
  • C-c - insert vertical bar below
  • C-c | convert region into table OR: insert new table
  • C-c ^ sort lines (in region)
  • [ ] DEMO: create table

Footnotes:

mylabelgreat content here

great content here

1.13 tables complex (docu, tutorial)

  • C-c | move region into table (see docu)
    • TABs, CSV, …
  • C-c + sum current column (or marked rectangle)
  • =$1+$2 value = sum of 1st and 2nd column
  • :=vsum(@I..@II) field = sum between 1st and 2nd hline
  • C-u C-u C-c C-c recompute table with iterations (docu)
  • #+TBLFM: $3 = $1 + $2 table formula
~#+TBLFM: $1 = -1 + 1
@2$1 = 1~ incremental numbers
  • org-table-import import data from CSV file
  • org-table-export export data to CSV file
US-DollarEUR
10.76481836
WhenWhatUSDEUR
2012-02-03Taxi Graz-Airport18.00
2012-02-03Taxi Seattle Airport25.0019.12
2012-02-13Taxi7.005.35
2012-02-14Taxi8.006.12
2012-02-17Taxi to Airport SeaTac35.0026.77
2012-02-22Taxi Airport-Graz16.00
91.36

Footnotes:

mylabelgreat content here

great content here

1.13.1 referencing example with detailed explanation

Here is another example working with tables and referencing other tables. I did this example twice: first in a column (vertical) based layout and then the very same example in a row (horizontal) based layout:

Footnotes:

mylabelgreat content here

great content here

1.13.1.1 column-based

Income May 2012Income June 2012
Joe1210
Alice2224
Bob1617
sum5051
June 2012 (from above)plus 20 percentJune 2013Difference
Joe1012.011-1.0
Alice2428.8312.2
Bob1720.4210.6
sum511.8
  • all formulas explained in detail:
    • @>$5=vsum(@I..@II)
      • value: 1.8
      • last row (@>) of column five ($5) is the sum of column five between first and second horizontal line (@I..@II)
    • @>$3=string("")
      • no value (empty)
      • overwrite the last row (@>) of column three ($3) with an empty string
      • otherwise it would get 1.2 times the value of corresponding column of table Income2012v as well - I chose not to want this sum in this column
    • $1='(identity remote(Income2012v, @@#$1))
      • values: Joe until sum
      • copy content of the first column of table “Income2012v” (Lisp formula ~’(identity remote(Income2012v, @@#$1))~) to the first column in this table ($1)
      • the “identity” statement prevents calc from interpreting the content
      • this is because I am too lazy to enter all names once again :-)
      • see also Org-hacks for field formulas
    • $2='(identity remote(Income2012v, @@#$3))
      • values: 10; 24; 17; 51
      • copy the content of the second column of table “Income2012v” to the second column in this table
      • you could skip this column and calculate the values of the next columns with direct references to remote(Income2012v, @@#$3) as well. However, it is more easy to compare visually if the values from 2012 are shown here as well (usability/readability)
      • note: by convention, only the values after the first horizontal line are taken
    • $3=1.2 * remote(Income2012v, @@#$3);%.1f
      • values: 12.0; 28.8; 20.4; 61.2
      • column three ($3) is 120 percent of the values of the third column of table “Income2012v” with one decimal place (;%.1f)
      • note: 61.2 (1.2 times 51) is overwritten by formula @>$3 from above
    • $5=$4-$3;%.1f
      • values: -1.0; 2.2; 0.6
      • column five ($5) is the difference between column four to column three with one decimal place

Here is another example: how to sum up the numbers of the first column so far:

NumbersSum of numbers so far
11
56
1016
5066
200266
10001266

The formular can be simplified even more by using a column formula: #+TBLFM: $2=vsum(@2$1..$-1) provides the same result as above.

Footnotes:

mylabelgreat content here

great content here

1.13.1.2 row-based

JoeAliceBobsum
Income May 201212221650
Income June 201210241751
JoeAliceBobsum
Income June 201210241751
plus 20 percent12.028.820.460.0
June 2013113121
Difference-1.02.20.61.8
  • all formulas explained in detail:
    • @>$>=vsum(@5$2..@5$4)
      • value: 1.8
      • last column in last row (@>$>) is the vector-sum (vsum) of column two to four of fifth row (@5$2..@5$4)
    • @1$2..@1$4='(identity remote(Income2012h, @1$$#))
      • values: Joe | Alice | Bob | sum
      • column two to four of first row (@1$2..@1$4) are copied from the corresponding fields of the first row (@1$$#) of table “Income2012h”
      • see also Org-hacks for field formulas
    • @2='(identity remote(Income2012h, @3$$#))
      • values: 2012 Income June | 10 | 24 | 17 | 51
      • the second row (@2) is copied from the corresponding fields of the first row (@1$$#) of table “Income2012h”
      • my guess: “2012” is moved to the beginning of the field most probably because it is interpreted as numeric value and not as string
    • @3$2..@3$4=1.2 * remote(Income2012h, @3$$#);%.1f
      • values: 12.0 | 28.8 | 20.4 | 60.0
      • the columns two to four of the third row (@3$2..@3$4) is 120 percent of the corresponding values of the third row (@3$$#) of the table “Income2012h” with one decimal place (;%.1f)
    • @5$2..@5$4=@4-@3;%.1f
      • values: -1.0 | 2.2 | 0.6
      • the column two to four of the fifth row (@5$2..@5$4) is the difference of the values in the corresponding values of the fourth row and the third row (@4-@3) with one decimal place (;%.1f)

Footnotes:

mylabelgreat content here

great content here

1.14 column view (docu)

  • C-c C-x C-c activate column view
  • e edit value
  • n/p next/previous value
  • q quit column view
  • a edit allowed values
  • C-c C-x p set property

Footnotes:

mylabelgreat content here

great content here

1.14.1 example sub-item

Footnotes:

mylabelgreat content here

great content here

1.14.2 NEXT [#B] another example

Footnotes:

mylabelgreat content here

great content here

1.15 capture, refile, archive (docu)

  • C-c c capture
  • C-c C-w refile
  • C-c C-x C-a archive
  • C-u C-u C-c c goto last capture
  • #+ARCHIVE: %s_done:: per-file archive
  • C-c C-x a toggle ARCHIVE tag
  • C-u C-c C-x a check direct children for archiving
;; ######################################################
;; templates for capturing C-c c
;; http://orgmode.org/org.html#Capture-templates
(setq org-capture-templates
      '(
	("s" "shorts-todo" entry (file+headline "~/share/all/org-mode/misc.org" "shorts")
	 "* NEXT %?\n:PROPERTIES:\n:CREATED: %U\n:END:\n\n" :empty-lines 1)
	("e" "Event" entry (file+headline "~/share/all/org-mode/misc.org" "Events")
	 "* %?\n:PROPERTIES:\n:CREATED: %U\n:END:\n\n" :empty-lines 1)
	("i" "IST Templates")
	("is" "IST shorts" entry (file+headline "~/share/all/org-mode/IST.org" "shorts")
	 "* NEXT %?\n:PROPERTIES:\n:CREATED: %U\n:END:\n\n" :empty-lines 1)
	("ie" "IST event" entry (file+headline "~/share/all/org-mode/IST.org" "Events")
	 "* %?\n:PROPERTIES:\n:CREATED: %U\n:END:\n\n" :empty-lines 1)
	("ii" "IST isst" entry (file+headline "~/share/all/org-mode/IST.org" "Events")
	 "* %? IST isst: \n:PROPERTIES:\n:CREATED: %U\n:END:\n\n- [[contact:Ingo Pill][Ingo Pill]]\n- [[contact:Thomas Quartisch][Thomas Quartisch]]\n\n" :empty-lines 1)
	("b" "Besorgung" entry (file+headline "~/share/all/org-mode/hardware.org" "Besorgungen")
	 "* TODO %?\n:PROPERTIES:\n:CREATED: %U\n:END:\n\n" :empty-lines 1)
	("C" "Clipboard" entry (file+headline "~/share/all/org-mode/misc.org" "shorts")
	 "* TODO %?\n:PROPERTIES:\n:CREATED: %U\n:END:\n%x\n\n" :empty-lines 1)
	("c" "capture to inbox, refile later" entry (file "~/share/all/org-mode/inbox.org")
	 "\n* %?\n:PROPERTIES:\n:CREATED: %U\n:END:\n\n" :empty-lines 1)
	("m" "movie" entry (file+headline "~/share/all/org-mode/movies.org" "inbox")
	 "* TODO %?\n:PROPERTIES:\n:CREATED: %U\n:END:\n\n" :empty-lines 1)
	("x" "xlog")
	("xh" "xlog hometrainer" table-line (id "xlog-hometrainer") "| %T |  |  |  |")
	("xk" "Keyboard Akkus leer" table-line (id "3407c9b7-1b41-443b-9254-32c4af3a54e8") "| %T |")
      )
)

Footnotes:

mylabelgreat content here

great content here

1.16 attachments (docu)

  • C-c C-a org-attach (menu)
    • i inherit
    • s set directory
    • a attach: move file to task directory
    • c/m/l attach: copy/move/link file
  • much more

Footnotes:

mylabelgreat content here

great content here

1.17 dates & time (docu)

  • C-c . insert active <2012-04-23 Mon> (with C-u: <2012-04-23 Mon 19:14>)
  • C-c ! insert inactive [2012-04-23 Mon] (with C-u: [2012-04-23 Mon 19:14])
  • S-RIGHT/LEFT/UP/DOWN interactively change timestamp
  • C-c < insert today
  • C-c C-o open agenda for current timestamp
  • C-c C-d insert DEADLINE
  • C-c C-s insert SCHEDULED
  • C-u C-c C-d removing DEADLINE
  • C-u C-c C-s removing SCHEDULED
  • C-c / d sparse tree with deadlines
  • DEADLINE <YYYY-MM-DD DoW +2d> defining repeated events/tasks
  • .+2w repetition interval starting with last DONE timestamp
  • ++3m never show multiple times even if not DONE
  • .+2d/4d show up on agenda not earlier as 2 days until 4 days
  • +1w -2d repeat weekly but show not earlier as two days before
  • C-c C-x c clone (recurring) event with time-shift (org-clone-subtree-with-time-shift)
    • good idea: create recurring event and clone it with time-shift
    • this way, canceling single events or moving single events is possible
  • 13:00-15:15 or 13:00+2:15 time range
  • <2013-11-15 Fri>-<2013-11-17 Sun> date range
  • C-c C-y return time range between dates
  • UP/DOWN on time stamp start/end -> toggle active/inactive

Note: please do not use time-stamps prior to UNIX epoch which is 1970-01-01. Some systems do handle those time-stamps fine, others produce errors.

Footnotes:

mylabelgreat content here

great content here

1.17.1 advanced date/time with sexp (docu)

To do a thing every x days between two dates, put:

%%(and (diary-cyclic x M1 D1 Y1) (diary-block M1 D1 Y1 M2 D2 Y2)) thing

22:00-23:00 The nerd meeting on every 2nd Thursday of the month

<%%(diary-float t 4 2)>

Footnotes:

mylabelgreat content here

great content here

1.18 agenda (docu)

  • C-c [ add buffer to agenda
  • C-c ] remove buffer from agenda
  • C-c a show agenda command menu
  • C-c a a invoke agenda view
  • C-c C-x < lock agenda to subtree
  • C-c C-x > release agenda restriction lock

when being in agenda mode:

  • q quit agenda
  • j jump to date
  • . goto today
  • f/b forward/back
  • v choose view menu
  • d/w day/week view
  • v d/w/m view for day/week/month
  • r refresh
  • RET goto item
  • SPC show item
  • < toggle filter to file
  • F toggle follow mode
  • o delete other window
  • / filter by tag
  • E toggle entry text
  • R toggle clock report
  • t change TODO state
  • : or T set tags
  • S-UP/DOWN set priority
  • ~,~ set priority
  • S-LEFT/RIGHT change timestamp day
  • > change timestamp to today
  • e set effort
  • m mark
  • u unmark
  • B bulk action
    • S scatter marked TODOs over the next N days
  • clocking
    • I start
    • O stop
    • X cancel
    • J jump to running clock entry
  • attachments to TODO entries
    • C-c C-a attachment menu
    • C-c C-a s set attachment folder
    • C-c C-a i inherit attachment folder
    • C-c C-a o open attachment
  • learn how to create your own agenda views:

Footnotes:

mylabelgreat content here

great content here

1.19 clocking time (docu)

  • C-c C-x C-i start clock on item
  • C-c C-x C-o/x stop or cancel clock on item
  • C-c C-x C-d display total subtree times
  • C-c C-c remove displayed times
  • C-c C-x C-r insert/update table with report

Footnotes:

mylabelgreat content here

great content here

1.19.1 example sub-hierarchy with report

Clock summary at [2012-11-19 Mon 11:17]

HeadlineTime
Total time27:16

Footnotes:

mylabelgreat content here

great content here

1.19.1.1 example item

Footnotes:

mylabelgreat content here

great content here

1.19.1.2 another item

Footnotes:

mylabelgreat content here

great content here

1.20 dynamic blocks with ELISP (docu)

  • execute ELISP functions in special blocks (see docu)
  • C-c C-x C-u update block
  • C-u C-c C-x C-u update buffer blocks

Footnotes:

mylabelgreat content here

great content here

1.21 source code (docu)

  • python “Hello World”
  • ~C-c ‘~ edit in native mode
  • <s + TAB easy templates (docu)
def foo(argument):
     print "Hello World"

Footnotes:

mylabelgreat content here

great content here

1.22 babel (docu)

  • http://orgmode.org/org.html#Languages
    • 2012-04-23: 35(!) languages
  • C-c C-c execute code
  • C-c C-v j insert header argument (menu)
  • many shortcuts for all kind of things
    • debugging
    • output control
    • navigation
    • session handling
  • C-c C-v b execute babel in buffer
  • C-c C-v s execute babel in subtree

Footnotes:

mylabelgreat content here

great content here

1.22.1 babel simple (doc)

Footnotes:

mylabelgreat content here

great content here

1.22.1.1 shell

pwd

Footnotes:

mylabelgreat content here

great content here

1.22.1.2 ruby

require 'date'
"This file was last evaluated on #{Date.today}"

Footnotes:

mylabelgreat content here

great content here

1.22.1.3 python

return 42 + 7

Footnotes:

mylabelgreat content here

great content here

1.22.1.4 ditaa

+---------+
| cBLU    |
|         |
|    +----+
|    |cPNK|
|    |    |
+----+----+

Footnotes:

mylabelgreat content here

great content here

1.22.2 babel advanced

Footnotes:

mylabelgreat content here

great content here

1.22.2.1 session with shell and R

cd ~/archive/events_memories && du -sc * |grep -v total

Using result set “directories” from above as “dirs” in R below:

pie(dirs[,1], labels = dirs[,2])

Footnotes:

mylabelgreat content here

great content here

1.22.2.2 remote shell session

Executing shell commands:

echo "Executed by `whoami` on `hostname` in `pwd`"

Doing something as root:

apt-get update

Switching to a remote host:

ssh vk@karl-voit.at 'echo "Executed by `whoami` on `hostname` in `pwd`"'

Footnotes:

mylabelgreat content here

great content here
1.22.2.2.1 Even more convenient remote access

Note: results, dir, and session parameters for babel are placed in the PROPERTIES drawer above.

Do stuff remote:

echo "Executed by `whoami` on `hostname` in `pwd`"
date

See interactive shell in buffer: 2015-11-02-ssh-testsession

Footnotes:

mylabelgreat content here

great content here

1.22.2.3 table using python function to calculate values

time = epoch
import datetime
strtime = str(time)
datetimestamp = datetime.datetime.utcfromtimestamp(int(strtime[:10]))
print datetimestamp.strftime('[%Y-%m-%d %a %H:%M:%S]')
UNIX epochtime-stamp
1262675465119[2010-01-05 Tue 07:11:05]
1234567890[2009-02-13 Fri 23:31:30]
1000000000[2001-09-09 Sun 01:46:40]

Footnotes:

mylabelgreat content here

great content here

1.23 LaTeX (docu)

  • ~C-c ‘~ open block native buffer
  • C-c C-x C-l preview LaTeX fragments
  • C-c C-c quit preview
  • C-c C-x \ toggle preview TeX characters as UTF-8

Greek characters α β φ \LaTeX{} $\varphi$

Footnotes:

mylabelgreat content here

great content here

1.24 export formats (docu)

  • C-c C-e export menu
  • C-c ; toggle COMMENT keyword on entry
  • tag: “noexport”
  • ASCII/Latin-1/UTF-8 export
  • HTML
  • LaTeX
  • PDF
  • DocBook
  • OpenDocument Text
  • TaskJuggler
  • Freemind
  • XOXO
  • iCalendar
  • [ ] DEMO: export this as PDF (plain)
  • [ ] DEMO: export this as PDF (beamer)

Footnotes:

mylabelgreat content here

great content here

1.24.1 Export options (docu)

  • per file:
    • C-c C-e t (org-insert-export-options-template)
  • per heading:
    • see properties drawer above
    • EXPORT_OPTIONS: see docu

Footnotes:

mylabelgreat content here

great content here

1.25 MobileOrg (docu)

  • great iOS app
    • no iOS on my side
    • does not seem to be maintained any more :-(
  • Android app
    • sync via Dropbox, ssh, scp, WEBDAV, gpg encryption, …
;;; http://orgmode.org/org.html#MobileOrg
;;; directory where to store MobileOrg-files
(setq org-mobile-directory "~/share/all/org-mode/mobile-org/")
(setq org-directory "~/share/all/org-mode")
(setq org-mobile-inbox-for-pull "~/share/all/org-mode/inbox.org")
(setq org-mobile-force-id-on-agenda-items nil)
'(org-mobile-files (quote ("~/share/all/org-mode/contacts.org" "~/data/share/all/org-mode/hardware.org" )))

Footnotes:

mylabelgreat content here

great content here

1.26 many many many many more features!

  • sections above are only a small fraction of the feature-set of Org-mode!
  • read the manual or the mailinglist to get inspired :-)

Footnotes:

mylabelgreat content here

great content here

1.27 customization per …

  • per configuration
  • per file
  • per heading

Footnotes:

mylabelgreat content here

great content here

2 Still Missing Topics

Things I did not include yet but are worth mentioning:

  • [ ] org-protocol

Footnotes:

mylabelgreat content here