org-mode 初挑戦。

id:rubikitch さんの org-mode 関係の記事を見て、org-mode 使おうかなぁと思いつつ、これまで手をつけていなかったのですが、先日のウェブテコでスライドを作るときに、アウトラインエディタ(というか、それ系もモード)を使うと、楽に出来るかなぁと思って、ついに触れてみました。
org-mode を触ってみると、それはもう他の Emacs のモードにはない面白い機能がいっぱいあって、それらを試す(チュートリアル)するのに夢中になり、スライドがすんごい手抜きになってしまったという副作用が生じるくらい楽しいモードでした。
なので、みんなも試すと良いと思うので、インストールと簡単なチュートリアルをメモっておきます。

最新版をインストール。

Emacs22 とかだと標準で入っているらしいのですが、せっかくなので、最新版を入れます。好きなディレクトリで、

$ git clone git://repo.or.cz/org-mode.git

開発版をチェックアウトします。./org-mode ディレクトリの中に入り、Makefile を編集します。

# Where local lisp files go.
lispdir = ~/.emacs.d/elisp

という感じで、lispdir を自分がインストールしたいディレクトリにして、make && make install します。
あと、remember-mode も個人的に超必須なので、

$ git clone git://repo.or.cz/remember-el.git

して、お行儀の良い人は、Makefile を編集して、

ELISPDIR = ~/.emacs.d/elisp

あたりの行を割と先頭あたりに追記して、make && make install したらいいし、お行儀の悪い僕などは、remember-el ディレクトリを load-path にぶっこんでます。

org-mode の設定とか。

org-mode + remember-mode でEmacs内で瞬時にメモをする→コードリーディングに生かす・メモ検索する - ’(rubikitch wanna be (a . lisper))のためだけでも、org-modeを試す価値があるので、まずこの設定をしよう。

(require 'org-install)
(setq org-startup-truncated nil)
(setq org-return-follows-link t)
(add-to-list 'auto-mode-alist '("\\.org$" . org-mode))
(org-remember-insinuate)
(setq org-directory "~/memo/")
(setq org-default-notes-file (concat org-directory "agenda.org"))
(setq org-remember-templates
      '(("Todo" ?t "** TODO %?\n   %i\n   %a\n   %t" nil "Inbox")
        ("Bug" ?b "** TODO %?   :bug:\n   %i\n   %a\n   %t" nil "Inbox")
        ("Idea" ?i "** %?\n   %i\n   %a\n   %t" nil "New Ideas")
        ))

僕は、org-directory を ~/org/ にしています。
後は、M-x remember をすれば、どこでも最強メモが使えるようになるのですが、僕は key-chord を使って、

(key-chord-define-global "rr" 'remember)

という風に、rr とタイプすると、remember コマンドが発動するようにしました。

org-mode の基本的使い方。

OrgMode - Emacs上のアウトライナーに纏められてある日本語記事を読みながらチュートリアルすると、直ぐに使える様になるので、ぜひチュートリアルしましょう。その場合は、OrgMode/Manual1 - Org Mode4.60 マニュアル1からどうぞ。
org では、* がアウトラインの見出しになります。** *** など数を増やすと、階層が増えます。
M-RET で現在の階層と同じ見出し(つまり * です)を作成できます。M-left or right で見出しの階層を増減(M-right で * → **)できます。
また、TAB キーが非常に重要で、見出しの内容を開閉できます。
開いた状態がコレとすると、

TABを一回タイプすると、

カーソルのある見出しの中身が展開されます。
上から4行目の見出しにカーソルがある状態でTABをタイプすると、

その中身だけが展開されます。
また、Shift-TAB で全部を階層の深さ毎に展開していきます。最後まで展開すると、今度は全て閉じます。サイクリングな仕様です。
C-c をプレフィックスとして、C-p C-n C-f C-b で見出しを移動できますが、僕はヘタレなので、

(define-key org-mode-map [(control up)] 'outline-previous-visible-heading)
(define-key org-mode-map [(control down)] 'outline-next-visible-heading)
(define-key org-mode-map [(control shift up)] 'outline-backward-same-level)
(define-key org-mode-map [(control shift down)] 'outline-forward-same-level)

という設定を追加して、Ctr + 上下、Ctr + Shift + 上下を使って移動できるようにしました。
他にも、ファイルリンクとか、リンクのエイリアスとか、org-mode は奥が深すぎるので、みんなもっと使って、オレオレ設定を公開してくれるのを待っています。
あと、はてな記法と相性が良さそうなので、Simple Hatena を org で使うようにしようかしら。