# Kelvin的胡言乱语

==============> 重剑无锋，大巧不工。

# Org Mode Manual Learning Notes

Learning notes recorded during reading org mode manual, simple and incomplete, because they are all about basic syntax.

Headers are lines started with star * (be careful that there should not be any indent before the star, otherwise it will be an item of a list, not a header).

The first level header is with one star *, and the second with two stars, and so on.

## lists

### unsorted lists

Unsorted list items start with -, + or *, but the star is NOT recommanded because it is not easy to distinguish it from headers.

• so, this is an unsorted list item using -
• this one using +

### sorted lists

Sorted list items start with 1. or 1), if org-alphabetical-lists is configured, a. a) A. A) can also be used.

1. sorted list item using a right parenthesis )
2. using a period .

### description lists

Description list items are unsorted list items, which contain separator :: to distinguish description term from description.

description example
this is a description for the "description example"

## foot notes

my blog on cnblogs1

my blog on github2

## tables

create a table is very easy, like what I am doing below:

name age job
Kelvin Hu 23 Software Engineer
Someone Unknown Unknown

several useful key bindings:

1. C-c - :: mapping command is org-table-insert-hline, will insert a separate line below
2. C-c RET :: mapping command is org-table-hline-and-move, insert a separate line and move to next row
3. C-c | :: mapping command is org-table-create-or-convert-from-region, create or convert table

Links exist between two square brackets, like below:

useful key bindings:

C-c C-o
org-open-at-point, open the link in browser

## markup rules

### title

The line below will be considered as the title of this document:

#+title: the line will be used as the title of current document

note that the case is not sensitive, so #+title: will have the same effect as #+TITLE:
and also do not forget the colon ":"


### several other useful syntax

#+BEGIN_VERSE and #+END_VERSE: the contents between the two tags will be outputed originaly, with no format

'#+BEGIN_QUOTE' and '#+END_QUOTE': the contents between the two tags are treated as quoting
(why I add a quote ' here? you may try it then you will know why I add it here ^_^)

#+BEGIN_CENTER and #+END_CENTER: the two tags will center the contents between them


### emphasis and monospace

As the offical doc says, you can make word bold, italic and underlined, and also strike through. also there are other two syntax: code and verbatim, I do not quite know what they are used for.

### horizontal rules

a line with at least 5 dashes and only contains dashes will be converted into a horizontal line, like below:

several rules:

1) lines start with #
3) contents between #+BEGIN_COMMENT and #+END_COMMENT
4) entire subtree starts with keyword COMMENT


C-c ; can toggle the COMMENT keyword at the beginning of an entry

note: all comments will NOT be exported

### useful syntax again

'#+begin_example'
example here...
'#+end_example'

'#+begin_src <syntax> [-n -r]'
some code here...
'#+end_src'


the <syntax> stands for the type, e.g. emacs-lisp

e.g. as below:

1: (defun hello-world()
2:   (print "hello world"))

public class Test {
public static void main(String[] args) {
System.out.println("hello world");
}
}


### include files

for example: #+include: "~/.emacs.d/init.el" src emacs-lisp will insert the contents of ~/.emacs.d/init.el at current position, as below: (the second parameter is the tag type, "src" stands for "#+begin_src/#+end_src" pair, so do "quote" and "example")

#+include: "~/.emacs.d/init.el" src emacs-lisp