emacsのorg-modeパッケージを使ってみる

HTML出力が可能なemacsのorg-modeパッケージについて記載します。

このページもorg-modeで出力したHTMLを利用しています。


1 org-modeとは

org-modeとは文書の作成、HTMLの出力が可能なemacsのメジャーモードの一つです。

簡易な操作で項目、表、リンクを作成できます。

2 起動方法

emacs24ではデフォルトでorg-modeが組み込まれているので、そちらを利用します(emacs22からデフォルトで組み込まれているようです)。

拡張子が.orgのファイルを開くことで、emacsはorg-modeで起動します。

他のメジャーモードと同様、M-x org-modeを実行することでorg-modeを起動できます。

3 文書作成

3.1 見出しの作成

行の先頭にワイルドカードを用いることで、見出しを作成することができます。この見出しはHTMLのh2, h3タグになります。TABキーを押すことで展開したり畳み込んだりすることができます。

* 見出し1(h2)
** 見出し2(h3)

この文書の「文書作成」はh2、「見出しの作成」はh3となります。

3.2 リストの作成

以下の形式でリストが作成されます。

- リスト1
- リスト2
  • リスト1
  • リスト2

 

3.3 表の作成

以下の形式で表が作成されます。

| ヘッダA | ヘッダB |
|---------+---------|
| 値A     | 値B     |
| ...     | ...     |

 

ヘッダA ヘッダB
値A 値B

 

また、値Bの直後でRETを押すと以下の用に整形され、org-mode上でも表形式となります。

3.4 preタグの作成

以下の形式でpreタグで囲まれた文字列が作成されます。

preタグで囲むことで文字列はそのままの形式で表示されます(preタグで囲んでいない文字列は空白やリスト用の-等の特殊文字がorg-modeによって解釈されます)。

: - preタグでそのままの形式で出力される文字列
- preタグでそのままの形式で出力される文字列

3.5 リンクの作成

以下の形式でハイパーリンクが作成されます。C-c C-lでガイドを用いてハイパーリンクを作成できます。

[[http://www.google.co.jp][Google]]

Google

 

3.6 ソースコードの表示

以下の形式でC言語のソースコードが表示されます。

#+BEGIN_SRC c++
#include <iostream>

int main(int argc, char* argv[])
{
    std::cout << "Hello, world." << std::endl;
    return 0;
}
#+END_SRC
#include <iostream>

int main(int argc, char** argv)
{
    std::cout << "Hello, world." << std::endl;
    return 0;
}

 

4 HTML出力

以下のショートカットでHTMLを作成できます。

古いバージョンだとC-c C-e以降のショートカットキーが異なります。

 

ショートカット 機能
C-c C-e h H HTML出力をバッファで開く
C-c C-e h h HTML出力をファイルに保存(.orgが.htmlに変わったファイル名
C-c C-e h o HTML出力をファイルに保存したブラウザで開く

 

筆者の環境ではC-c C-e h oでChromeが起動します。

4.1 フッター出力の抑制

以下のフッターが出力されます。

Date: 2015-09-09T22:23+0900
Author: <Your Name>
Org version 7.9.3f with Emacs version 24
Validate XHTML 1.0

このフッターは以下をファイルに記載しておくことで抑制できます。

#+style: <style>#postamble { display:none; }</style>

ただし、表示されないだけでHTMLには記述されております。

完全に削除するには、表示されない状態にしてから表示されない末尾の部分のHTMLを削る必要があります。

4.2 _による文字列修飾を抑制

_を文字列の前につけると下付き文字になります。

_を文字として使う文書の場合に困ることになります。以下をファイルに記載しておくことで抑制することができます。

#+OPTIONS: ^:nil

5 その他

 

ショートカット 機能
C-c C-o リンク先を開く(筆者の環境ではw3mで開きます)
tab 各種補完、インデント、リストの展開と折りたたみ