#+TITLE: Org contribution layer for Spacemacs
#+HTML_HEAD_EXTRA:
[[file:img/org.png]]
* Table of Contents :TOC_4_org:noexport:
- [[Description][Description]]
- [[Features:][Features:]]
- [[Note][Note]]
- [[Install][Install]]
- [[Layer][Layer]]
- [[Github support][Github support]]
- [[Gnuplot support][Gnuplot support]]
- [[Different bullets][Different bullets]]
- [[Key bindings][Key bindings]]
- [[Org][Org]]
- [[Org with evil-org-mode][Org with evil-org-mode]]
- [[Tables][Tables]]
- [[Tree ][Tree ]]
- [[Element insertion][Element insertion]]
- [[Links][Links]]
- [[Emphasis][Emphasis]]
- [[Tagging][Tagging]]
- [[Pomodoro][Pomodoro]]
- [[Presentation][Presentation]]
- [[Org-repo-todo][Org-repo-todo]]
- [[Org-MIME][Org-MIME]]
* Description
This layer enables [[http://orgmode.org/][org mode]] for Spacemacs.
** Features:
- Vim inspired key bindings are provided by [[https://github.com/edwtjo/evil-org-mode][evil-org-mode]]
- Nicer bullet via [[https://github.com/sabof/org-bullets][org-bullets]]
- A [[http://pomodorotechnique.com/][pomodoro method]] integration via [[https://github.com/lolownia/org-pomodoro][org-pomodoro]]
- TODO capture via [[https://github.com/waymondo/org-repo-todo][org-repo-todo]]
- presentation mode via [[https://github.com/rlister/org-present][org-present]]
-
** Note
Since version 0.104, spacemacs uses the `org` version from the org ELPA
repository instead of the one shipped with emacs. Then, any `org` related code
should not be loaded before `dotspacemacs/user-config`, otherwise both versions
will be loaded and will conflict.
* Install
** Layer
To use this contribution add it to your =~/.spacemacs=
#+BEGIN_SRC emacs-lisp
(setq-default dotspacemacs-configuration-layers '(org))
#+END_SRC
** Github support
To install Github related extensions like [[https://github.com/larstvei/ox-gfm][ox-gfm]] to export to Github
flavored markdown set the variable =org-enable-github-support= to =t=.
#+BEGIN_SRC emacs-lisp
(setq-default dotspacemacs-configuration-layers '(
(org :variables
org-enable-github-support t)))
#+END_SRC
** Gnuplot support
Org-mode support the plotting of data within tables through [[http://www.gnuplot.info/][Gnuplot]] as
demonstrated [[http://orgmode.org/worg/org-tutorials/org-plot.html][here]]; unfortunately, this is [[https://github.com/bruceravel/gnuplot-mode/issues/15][not terribly well supported]] on Windows
at this stage. It is possible to disable the configuration of gnuplot support
as usual by adding the package =gnuplot= to your =dotspacemacs-excluded-packages=
variable.
** Different bullets
You can tweak the bullets displayed in the org buffer in the function
=dotspacemacs/user-config= of your dotfile by setting the variable
=org-bullets-bullet-list=. By default the list is set to =("◉" "○" "✸" "✿")=.
#+BEGIN_SRC emacs-lisp
(setq org-bullets-bullet-list '("■" "◆" "▲" "▶"))
#+END_SRC
* Key bindings
** Org
| Key Binding | Description |
|-------------+--------------------------------|
| ~SPC a o #~ | org agenda list stuck projects |
| ~SPC a o /~ | org occur in agenda files |
| ~SPC a o a~ | org agenda list |
| ~SPC a o c~ | org capture |
| ~SPC a o e~ | org store agenda views |
| ~SPC a o l~ | org store link |
| ~SPC a o m~ | org tags view |
| ~SPC a o o~ | org agenda |
| ~SPC a o O~ | org clock out |
| ~SPC a o s~ | org search view |
| ~SPC a o t~ | org todo list |
| ~SPC C c~ | org-capture |
| ~SPC C t~ | ort/capture-todo |
| ~SPC C T~ | ort/capture-checkitem |
** Org with evil-org-mode
| Key Binding | Description |
|----------------------------------------------+----------------------------------------------|
| ~SPC m ~ | org-ctrl-c-ctrl-c |
| ~SPC m *~ | org-ctrl-c-star |
| ~SPC m RET~ | org-ctrl-c-ret |
| ~SPC m -~ | org-ctrl-c-minus |
| ~SPC m '~ | org-edit-special |
| ~SPC m ^~ | org-sort |
| ~SPC m /~ | org-sparse-tree |
| ~SPC m .~ | org-time-stamp |
| ~SPC m a~ | org-agenda |
| ~SPC m b~ | org-tree-to-indirect-buffer |
| ~SPC m A~ | org-archive-subtree |
| ~SPC m c~ | org-capture |
| ~SPC m C~ | evil-org-recompute-clocks |
| ~SPC m d~ | org-deadline |
| ~SPC m e~ | org-export-dispatch |
| ~SPC m f~ | org-set-effort |
| ~SPC m I~ | org-clock-in |
| ~SPC m l~ | org-open-at-point |
| ~SPC m n~ | org-narrow-to-subtree |
| ~SPC m N~ | widen |
| ~SPC m O~ | org-clock-out |
| ~SPC m P~ | org-set-property |
| ~SPC m q~ | org-clock-cancel |
| ~SPC m R~ | org-refile |
| ~SPC m s~ | org-schedule |
| ~SPC m T~ | org-show-todo-tree |
| ~SPC m L~ | org-shiftright |
| ~SPC m H~ | org-shiftleft |
| ~SPC m K~ | org-shiftup |
| ~SPC m J~ | org-shiftdown |
| ~SPC m C-S-l~ | org-shiftcontrolright |
| ~SPC m C-S-h~ | org-shiftcontrolleft |
| ~SPC m C-S-j~ | org-shiftcontroldown |
| ~SPC m C-S-k~ | org-shiftcontrolup |
| ~SPC s l~ | spacemacs/jump-in-buffer (jump to a heading) |
*** Tables
| Key Binding | Description |
|---------------+----------------------------------------------------------------------------|
| ~SPC m t a~ | Align the table at point by aligning all vertical bars |
| ~SPC m t b~ | Blank the current table field or active region |
| ~SPC m t c~ | Convert from `org-mode' table to table.el and back |
| ~SPC m t d c~ | Delete a column from the table |
| ~SPC m t d r~ | Delete the current row or horizontal line from the table |
| ~SPC m t e~ | Replace the table field value at the cursor by the result of a calculation |
| ~SPC m t E~ | Export table to a file, with configurable format |
| ~SPC m t h~ | Go to the previous field in the table |
| ~SPC m t H~ | Move column to the left |
| ~SPC m t i c~ | Insert a new column into the table |
| ~SPC m t i h~ | Insert a horizontal-line below the current line into the table |
| ~SPC m t i H~ | Insert a hline and move to the row below that line |
| ~SPC m t i r~ | Insert a new row above the current line into the table |
| ~SPC m t I~ | Import a file as a table |
| ~SPC m t j~ | Go to the next row (same column) in the current table |
| ~SPC m t J~ | Move table row down |
| ~SPC m t K~ | Move table row up |
| ~SPC m t l~ | Go to the next field in the current table, creating new lines as needed |
| ~SPC m t L~ | Move column to the right |
| ~SPC m t n~ | Query for a size and insert a table skeleton |
| ~SPC m t N~ | Use the table.el package to insert a new table |
| ~SPC m t p~ | Plot the table using org-plot/gnuplot |
| ~SPC m t r~ | Recalculate the current table line by applying all stored formulas |
| ~SPC m t s~ | Sort table lines according to the column at point |
| ~SPC m t t f~ | Toggle the formula debugger in tables |
| ~SPC m t t o~ | Toggle the display of Row/Column numbers in tables |
| ~SPC m t w~ | Wrap several fields in a column like a paragraph |
*** Tree
| Key Binding | Description |
|-------------+-----------------------|
| ~SPC m S l~ | org-demote-subtree |
| ~SPC m S h~ | org-promote-subtree |
| ~SPC m S k~ | org-move-subtree-up |
| ~SPC m S j~ | org-move-subtree-down |
| Key Binding | Description |
|-------------+---------------------------------|
| ~TAB~ | org-cycle |
| ~$~ | org-end-of-line |
| ~^~ | org-beginning-of-line |
| ~<~ | org-metaleft |
| ~>~ | org-metaright |
| ~gh~ | outline-up-heading |
| ~gj~ | org-forward-heading-same-level |
| ~gk~ | org-backward-heading-same-level |
| ~gl~ | outline-next-visible-heading |
| ~t~ | org-todo |
| ~T~ | org-insert-todo-heading nil |
| ~H~ | org-beginning-of-line |
| ~L~ | org-end-of-line |
| ~o~ | always-insert-item |
| ~O~ | org-open-above |
| Key Binding | Description |
|-------------+--------------------------------------------|
| ~M-l~ | org-metaright |
| ~M-h~ | org-metaleft |
| ~M-k~ | org-metaup |
| ~M-j~ | org-metadown |
| ~M-L~ | org-shiftmetaright |
| ~M-H~ | org-shiftmetaleft |
| ~M-K~ | org-shiftmetaup |
| ~M-J~ | org-shiftmetadown |
| ~M-o~ | org-insert-heading+org-metaright |
| ~M-t~ | org-insert-todo-heading nil+ org-metaright |
*** Element insertion
| Key Binding | Description |
|-------------+----------------------------------|
| ~SPC m h i~ | org-insert-heading-after-current |
| ~SPC m h I~ | org-insert-heading |
| ~SPC m i f~ | org-insert-footnote |
| ~SPC m i l~ | org-insert-link |
*** Links
| Key Binding | Description |
|-------------+-------------------|
| ~RET~ | org-open-at-point |
*** Emphasis
| Key Binding | Description |
|-------------+----------------------------|
| ~SPC m x b~ | make region bold |
| ~SPC m x c~ | make region code |
| ~SPC m x i~ | make region italic |
| ~SPC m x r~ | clear region emphasis |
| ~SPC m x s~ | make region strike-through |
| ~SPC m x u~ | make region underline |
| ~SPC m x v~ | make region verbose |
*** Tagging
| Key Binding | Description |
|-------------+--------------|
| ~SPC m :~ | org-set-tags |
** Pomodoro
| Key Binding | Description |
|-------------+-------------------|
| ~SPC m p~ | starts a pomodoro |
** Presentation
org-present must be activated explicitly by typing: ~SPC : org-present~
| Key Binding | Description |
|-------------+----------------|
| ~h~ | previous slide |
| ~l~ | next slide |
| ~q~ | quit |
** Org-repo-todo
| Key Binding | Description |
|-------------+----------------|
| ~SPC m g t~ | ort/goto-todos |
** Org-MIME
| Key Binding | Description |
|-------------+---------------------------------------------------|
| ~SPC m M~ | in =message-mode= buffers convert into html email |
| ~SPC m m~ | send current buffer as HTML email message |