I’ve been putting off writing about org-mode as it is hard to know where to start. What is org-mode? From the org-mode web page
Org mode is for keeping notes, maintaining TODO lists, planning projects, and authoring documents with a fast and effective plain-text system.
For many people, org-mode is the reason they started using emacs. I only came to it after using emacs for about 10 years, but it was responsible for me moving from using emacs as a simple text editor to using emacs almost everywhere, and seeing a huge productivity boost.
Org-mode is very versatile, and I use it to (among other things):
- Write general notes;
- Write pdf lecture handouts and slides;
- Write my research notes, analysis code, results, and final published papers in a single document allowing for reproducible research;
- Manage my to do list and deadlines;
- Write this blog;
- Create static web pages;
- Compose emails
One key thing to note is that while doing all these things, all org-mode documents are simple plain text that can be read in any text editor.
There are lots of org-mode tutorials out there such as
I don’t want to reinvent the wheel here, but I think the sheer amount that org-mode can do can be overwhelming for new users. So, in the spirit of this blog, I’ll write a series of posts to pick out some of the key features of org-mode that I use the most.
I’ll start here with the use of org-mode to make simple structured notes. This was the thing that got me hooked on org-mode, and everything else followed from here.
Org-mode is included in emacs, but you should install the most recent version (8.3.1 as of today).
The easiest way to get started is to open a new file in emacs with .org
as the extension. Below is an example org document, and I would suggest typing this into your org-mode file to get a feeling for how the structure works.
* org-mode structure
Text in org is structured by headings, denoted by lines starting with
one or more * so we are currently in a section!
** A subheading
Starts with an extra * and so on
** navigation
Headings can be expanded or collapsed by moving to the (sub)heading
and pressing TAB. S-TAB cycles all headings. You can jump to next and
previous headings with C-c C-n and C-c C-p respectively.
You can move headings up and down to reorder them with the arrow keys,
using M-up or M-down. You can change the level of headings with M-left
and M-right (and use M-S-left and M-S-right to also change the levels
of and subheadings).
** lists
*** bullet lists
- bullet lists can be created like this (start a line with one or
more space and a -
- pressing M-RET gives you a new bullet
- we might also like nested bullets
- like this one (I pressed M-RET TAB to indent it)
- and another (M-RET now indents to the new level)
- the nice thing is that for long lines of text, emacs wraps them
so that they line up with the bullet
- you can also reorder list items and change indentation using
M-up or M-down just like with section headings
- you can change bullet style using S-left and S-right
*** numbered lists
1) numbered lists are also possible
2) M-RET gives me a new number
*** checklists [/]
- [ ] we can even have check lists
- [ ] M-S-RET gives a new item with a check box
- [ ] C-c C-c check/unchecks a box
- [ ] you can have sub items
+ [ ] like this
+ [ ] that can be checked off individually
- [ ] and you can track the number of items by adding [/] to the end
of a line above a checklist - this updates when you check items off
*** definition lists
- definition lists :: these are useful sometimes
- item 2 :: M-RET again gives another item, and long lines wrap in a
tidy way underneath the definition
I would suggest a couple of customisation to org-mode at this stage. Add the following to your emacs config file:
;; set maximum indentation for description lists
(setq org-list-description-max-indent 5)
;; prevent demoting heading also shifting text inside sections
(setq org-adapt-indentation nil)
That’s all for now. Try using org-mode to make simple notes and I think you’ll like the structure it gives you compared to simple text.