Org-Babelでinit.elを書き始めて1週間

ようやく一通りの設定が終わりました。


とりあえず下からStarter-kitを落としてきて参考にすると、

割と簡単に作れます。

https://github.com/eschulte/emacs-starter-kit


僕の場合初期化用のORG-FILEは、

".emacs.d -> OrgInit "というディレクトリを作ってそこに入れました。


基本的にすることは以下の3ステップです。



(1) ".emacs.d"に init.el を準備する。


まずは init.el を準備します。

普通はこの中に設定をズラズラと書きますが、

ここで必要なのは、


- 最新のOrg-xx.elが入ったディレクトリへのパスの設定。

- Orgの読み込み。

- 設定を書いたOrg-fileへパスを渡す。


だけです。


init.elの中身はこんな感じになります。


;;;;;;;;;;;;;;;;;;;;;;
;; OS Configuration


(defvar run-linux nil)
(defvar run-win nil)


(cond ((string-match "linux" system-configuration)
(setq run-linux t))
((string-match "mingw" system-configuration)
(setq run-win t)))


;;;;;;;;;;;;;;;;;;;;;;
;; Load Path Setting


(setq dotfiles-dir (cond (run-linux "~/.emacs.d/")
(run-win "C:/gnupack_basic-5.01/home/.emacs.d/")))


(add-to-list 'load-path dotfiles-dir)
(add-to-list 'load-path (concat dotfiles-dir "site-lisp/org/lisp"))


(setq starter-dir (concat dotfiles-dir "OrgInit"))


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Load up Org Mode and Babel


(require 'org-install)


;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Load up the main file


(org-babel-load-file (expand-file-name "start-init.org" starter-dir))


上から

- OSの判別

- ロードパスの設定

- Orgの読み込み

- 設定の書かれたOrg-fileを読み込み


となります。

ここから先の設定は " start-init.org" の中に書かれています。



(2) Org-fileに設定を書き込む


次は先ほど指定した "start-init.org"の中に色々設定を書いていきます。

例えばAnythingとかOrg-modeとか、各内容が多いものは別ファイルにして、

"start-init.org"から読み込ませることも出来ます。


Org-modeなので、不必要な部分は折りたたんで見通しよくしたり、

TODO項目を直接書いておいたり、

別ファイルに設定を書いた場合、そのファイルへのリンクを書いておいて、

クリックするとファイルが開くようにしたりと色々出来ます。

init.elにコメントで説明を書くよりは圧倒的に見通しが良い気がします。



くらいまーず はい


設定したい内容は下のように、

#+begin_src emacs-lisp

#+end_src

の間に書きます。


くらいまーず はい

一々書くのが面倒くさい方はYASnippetを使うと幸せになれます。

http://code.google.com/p/yasnippet/



さらに別ファイルに分けて設定を書く場合は、

下のように設定を書いたファイルを読み込ませます。


くらいまーず はい

ここで "starter-kit-load" は下のように定義しています。

(starter-kitのものをそのまま流用しています。)


くらいまーず はい


(3) Emacsを再起動


個別にやっても良いですが、手っ取り早く・・・


色々別ファイルに書き出したりして自分なりに整理をしたら、

Emacsを再起動してみます。


すると下のように設定を書いておいたOrg-fileからLispだけ抜き出して、


くらいまーず はい

それぞれのファイルに対応するLispファイルを作って読み込んでくれます。



くらいまーず はい

以上です。