トップページ > OrgMode > OrgTutorial
emacsのorg-modeは、C_Dominikさんの作成したemacsのアウトラインベースのlisp(マクロ)です。
最近はemacsのパッケージにも取り入れられたようで、Meadowにもすでに含まれていました。googleで検索したところ、以前に比べれば触れられているページが増えてきているようですが、まだまだ利用している人は少ないかもしれません。
ORG_mode_Manualは、バージョンが3.03の頃のマニュアルをベースに翻訳したのですが、現在、バージョンが4.60に上がっており(2006/12/22現在)、メーリングリストを読んでいると怒濤のバージョンアップが続けられています。(なお、マニュアルはOrgMode/Manualを見てください。古いかもしれませんが)
そんなわけで機能も随分向上しているので、新しいバージョンの翻訳をしたいとおもっているのですが、なかなか安定版にならず、翻訳をためらっていいるところです。訳してみないとどんな機能が追加されたかわからないというのが本当のところです。
たまたまメーリングリストで、David_ O'TooleさんがOrgTutorialという簡単な解説のページをたちあげられていたので、翻訳してもよいか確認したところ快諾していただきました。
非常に簡単ですが、org-modeの単なるOutlineと異なる部分について解説されています。
Daveさんにこの場を借りて感謝するとともに、org-modeを使ってみようとされている方のお役にたてば幸いです。
なお、私はZaurusSL-C3000の環境で利用しています。その辺は十分ご理解ください。
Org チュートリアル
作者:David O'Toole
ホームページ:http://dto.freeshell.org/notebook/
OrgTutorialのページ:http://dto.freeshell.org/notebook/OrgTutorial.html
翻訳日:2006/05/06
イントロダクション
- org-modeはEmacs上で、パーソナルな情報の活用したりとアウトラインを書いたりするためのツールです。このドキュメントは、読者にorg-modeの感じを掴んでもらい、ステップバイステップで書かれた説明と豊富なスクリーンショットで基本的な利用方法を学んでもらうためのものです。このドキュメントはマニュアルに取って代わろうとするものではなく、あくまでもorg-modeのいくつかの側面をカバーしたものです。
org-modeを取得する
インストール
- 「.emacs」に以下のスクリプトを追加してください。
(add-to-list 'load-path "PATH_TO_WHERE_YOU_UNPACKED_ORGMODE(ここにあなたのorg-modeのPathを記載)")
(require 'org)
(add-to-list 'auto-mode-alist '("\\.org$" . org-mode))
(define-key global-map "\C-cl" 'org-store-link)
(define-key global-map "\C-ca" 'org-agenda)
(setq org-log-done t)
- これでorgが読み込まれます。そしていくつかの基本的なglobal keyが定義されます。"org-store-link"と"org-agenda"が何かは後ほど説明します。
- もうひとつ付け加えておくと---org-modeで作成したファイルを保存する場合は、別のディレクトリにしておいたほうが良いと思います。私は「~/org」をお薦めします。
基本事項
このセクションでは、私がorg-modeを使ってどのようにこのドキュメントを作成したかを示すことで基本的なorg-modeの使い方を説明します。
新規ファイルの作成
- あなたがemacsの初期設定ファイルを上記のように設定したならば、拡張子を「.org」としたファイルを開いたり、作成したときはいつでもorg-modeに入ります。
- 私は、「OrgTutorial.org」と名付けたファイルを新しく作成しました。するとモードラインには、「Org」と表示され、org-modeに入ったことがわかります。
簡単なタスクリスト
- 最初に、タスクを列挙するために「Tasks」という見出しを書き込みます。こうすることはは必ず必要だというわけではないのですが、多くの場合便利です。特に文書を書いているときに、本文とタスク(やるべき作業)とを分けて書いているような場合に役に立ちます。
- 第一階層の見出しは「*」がひとつで始まります。第二階層の見出しは「*」が2つではじまり、以下同様となります。
- org-modeではTODO項目は常に見出しである必要があります。私は「チュートリアルのための新しいorgファイルを始める」という見出しのついたTODO項目を記入します。
- いつでも新しいファイルで始めるのは当たり前なのでちょっと馬鹿げているかもしれませんが。そして、その見出しの行にカーソルを置いて、C-c C-tと何回か入力し、そのTODO項目をDONEという記号をつけます。このC-c C-tとはorg-todoのコマンドです。
- TODO項目が完了したときに、org-modeはどのようにその時刻を記録するのか注意してください。
- TODO項目を追加してみましょう。カーソルを次の行に置いて、M-shift-RETと入力してみてください。(これはorg-insert-todo-headingと呼びます)。
(注:ZaurusだとM-shift-Retがうまく効きません。C-c C-x M大文字のmで代替できます)
文書の骨子を作るのに見出しを用いる
- 自分の考えを整理するのにもっとも良いのがアウトラインを利用することです。私が次に行ったのはチュートリアルに関する様々なトピックをアウトラインに書き出すことです。真っ白なページを前にするとプレッシャーがかかりますが、アウトラインに書き出すことで、ストレスの少ない小さな固まりに分割することができます。そうすることで白いページを埋めていくことも容易になります。
- 第一階層の見出しは「*」1つではじまり、第二階層は「*」2つ、そして階層が深くなるにつれて、3つあるいはそれ以上の「*」をつけることを思い出してください。
- 次に示すのが、私がドキュメントをアウトライン化し終えたところの状況です。
- 文書のアウトライン化を終えたときに、Tasksに記入した「Outline document(文書をアウトライン化する)」というTODO項目をDONE(完了)に変更していることに注意してください。
各セクションの内容を記入する
- それぞれの見出しの下に本文を簡単に付け加えることができます。
他の場所とリンクする
- 「Obtaining Org-mode(Org-modeを取得する)」というセクションでorg-modeのwebサイトとリンクを貼りたいと思いました。リンクを貼るときの「括弧"["」を用いた構文は次のとおりです。
[[link][description]]
[[リンク先のアドレス][説明]]
- どのようにリンクと説明を入力したかを見てください。最後の「右括弧"]"」で閉じる前の状態です。
- そして最後の「右括弧"]"」を入力したときに、リンク先のアドレスは隠されて、単純に説明のみが表示されます。
- カーソルをそのリンクの上に持って行き、C-c C-o(org-open-at-point)を実行してみてください。
- zaurusのための説明
URLをw3mで呼び出すためには事前の設定が必要です。
以下の設定を.emacsに記入しておいていください。
w3mでブラウズする場合
(setq browse-url-browser-function 'w3m-browse-url)
(global-set-key "\C-xm" 'browse-url-at-point)
operaでブラウズする場合
(setq browse-url-browser-function 'browse-url-mozilla)
(setq browse-url-mozilla-program "opera")
(global-set-key "\C-xm" 'browse-url-at-point)
- ローカルに置かれたファイルにリンクを貼ることもできます。他のファイルを開いてみましょう。例えば、emacsの初期設定ファイルなど。そしてC-c l(org-store-link)を入力してください。開いたファイルのリンクが保存されたというメッセージが表示されます。
- 補足説明
- ファイルへのリンクをはりたいときは「file:/hoge/hoge.txt」のように、「file:」をつけることで可能になります。
- それから、今まで開いていたorg-modeのバッファにもどり、C-c C-l(org-insert-link)を入力すると、そのリンクを貼り付けることができます、(場合によっては、先ほど保存したリンクを表示するためにスクロールキーを押す必要があるかもしれません。)
- 補足説明
- 例えば/home/hoge.txtを開き、そこでC-c lを実行するとエコー領域に
Stored: file:/home/hoge.txt::*という表示がでる。
C-x bでもとのorg-modeのバッファにうつり、カーソルをリンクを挿入したい場所にもっていきます。
C-c C-lを入力すると、Link:と表示されるので、矢印キーで表示を変えると
先ほどのfile:/home/hoge.txt::*が表示され、そこでRET。Description:と表示されるので
説明文、例えばhogefileと入力すると、
「hogefile」という説明が挿入され、背後にリンクが設定されます。
文書の概観
- これまでに、私の書いている文書はだんだん長くなってきて、もはや画面上に表示できなくなってきました。Org-modeはこんなときにshift-TABを押すことで文書全体の概観を簡単に掴むことができます。
- 第一階層の見出しが表示されていることに注意してください。再びshift-TABを打ち込むと全ての見出しが表示されます。その中にはTODO項目も含まれています。
- そして再度shift-TABを打ち込むと文書が元通りに表示されます。各セクションの本文も表示されます。
タスクにノートを付け加える
- TODO項目の見出しの下には好きなだけ文書を書き込むことができます。実際TODOの下に小見出しをつけることでTODOの中のTODOを付け加えることもできます。
- タスクに注釈をつけることが簡単に行えるので、そのタスクに関連するリンクやタスクに沿ったアイデアを集約することができます。タスクに情報を集めることでワークフローのモデルを作るのに大変役立ちます。--それはしばしば、大きなタスクを小さなサブタスクに分割し、作業したらチェックするというようなことが可能になります。
さらに上のレベルの機能のさわりの部分
- この文章を終えるまえに、org-modeの機能のうちのグローバルTODO、スケジューリング、そして予定表の機能について触れておきましょう。これらの機能は、別々のorg-modeファイルから、優先順、日付順に表示して関連するTODOを結合するのに使われます。これによってどのタスクがいつ完了したかを把握するのに使うことができます。
設定
- 最初にorg-agenda-filesという変数をセットし、どのファイルからTODOやスケジュールのある項目を検索するかを設定しなければなりません。
- 例えば、仕事用ファイル、自宅用ファイル、学校用ファイルというようないくつかのorg-modeのファイルがあると想定してみましょう。
- 次にemacsの初期設定ファイル(.emacs)に次の項目を付け加えてください。
(setq org-agenda-files (list "~/org/work.org"
"~/org/school.org"
"~/org/home.org"))
グローバルTODOリスト
- C-c a tを実行するとグローバルTODOリストが表示されます。org-modeではorg-agenda-filesに記載されたファイルがスキャンされて、完了していないTODO項目のリストが表示されます。
- カーソルをそれぞれのtodo項目のところに持って行き、「t」を押すとTODOの表示がDONEに変更されます。次にRETをたたくと、そのTODO項目が記載されているファイルにジャンプします。
タスクのスケジューリングと予定表の活用
- 「文書の完成」を今日に設定したいという場合を考えてみましょう。カーソルを「文書の完成」というTODO項目の次の行にカーソルを持って行き、C-c C-sを入力することでorg-scheduleを実行します。するとカレンダーが立ち上がり、望んだ日の上でenterを押すかクリックします。
- 日付を選ぶと、org-modeはTODO項目の後ろに予定日の日付を挿入します。
- ファイルを保存して、C-c a aを入力しorg-agendaを実行します。すると画面に今週のスケジュールされた項目が表示されます。
- 今度はログ画面上で「l(小文字のL)」を入力してみましょう。この画面は完了したタスクと完了時間のすべてが表示されます。
最後に
旧コメント
- 2006-09-01 (Fri) 00:51:25 まさ? : T.Okanoさん、こんんちは。
なるほど、GTDはそういうことだったのですね。
メーリングリストのアーカイブをお知らせくださりありがとうございます。ちょっと覗いてみたら、色々と面白そうなやり取りがありました。GTDって概念なので、個々のツールにどう落とし込むかというところは個人の自由ってところが利点の一つでもあるのかなと思っています。メーリングリストをちょこっと覗いた限りでは、ただ1種類のやり方だけじゃなくて多様なやり方にどう対応するかみたいなところで議論があって、なかなか難しいなという印象を持ちました。もうちょっとちゃんと読んでいきたいと思っています。
- 2006-08-31 (Thu) 21:15:05 T.Okano : まささん>こんにちは
うまくいったのでよかったです。削除した3行を残したほうがよさそうですね。
修正しておきました。
org-modeの作者のメーリングリストをみると、必ずしも作者がGTD用を意図して作っているわけではなくて、メーリングリストに参加されている方の中でGTDをorg-modeで実践したいという要望を出されているので、その方の希望に沿ってGTDで利用できるように修正をかけているようです。
英語なので私もしっかり読んでいるわけではないので詳しくは説明できませんが、もしもorg-modeでGTDを行うことに興味があるのならば、メーリングリストを覗いてみてください。
アーカイブと書かれているところをクリックすれば、メーリングリストに参加しなくても、ログを読むことができます。
http://lists.gnu.org/mailman/listinfo/emacs-orgmode
- 2006-08-31 (Thu) 14:53:51 まさ? : T.Okanoさん、
ありがとうございます!!なんとお礼を言ったらよいか!
ちゃんとM-S-系の機能が使えるようになりました。ホントありがとうございます。めちゃくちゃ嬉しいです。
.emacsの追加記述ですが、私の環境だと削除となっている最初の2行と、最後の1行を書かないとemacs起動時にエラーが出ました。ただ、この計3行を書けばきちっと動いていますので問題ありません。
おまけに、emacs-lispの説明とか、org.elのキーバインドの記述されているところとか教えて頂いてありがとうございました。”魚を採ってやるだけじゃなくて、採り方を教える”って奴ですね。勉強します。
zaurusでorg-modo使うってのは本当に良いですよね。もうこれ無しだと回らないって感じです。マニュアル読んでますと、最近はやけにGTDに寄っているような気がします。私自身はコンテキストの使い方がいまいち分からなくて、なんとかしようと思いつつもう1年近く経ってしまっていますが。org-modeでGTDを解説した日本語のウェブページがあったら、org-modeがもっとメジャーになるんじゃないかと思っています。これ本当に便利ですからね。
とにかく、本当にありがとうございました。4.45にバージョンが上がっているみたいなんで、この後早速バージョンアップします。
- 2006-08-31 (Thu) 01:11:47 T.Okano : こんにちは>まささん。
やってみるとM-sがセンタリングに設定されているようでうまく動作しないようですね。キーバインドについては、org.el 4.45だとorg.elをエディターで開けば、15360行あたりに設定がされています。
ZaurusできかないのはM-S-Right(キャンセルキー+シフトキー+右矢印)というようなshiftキーと矢印キーの組み合わせがうまくいかないと思います。
orgがバージョン4に上がり、このような場合の回避策は、とりあえず\C-c\C-xをつけて対応したようです。
org.elの15390行以下を見てもらうとわかりますが、
(define-key org-mode-map [(meta shift left)] 'org-shiftmetaleft)
(define-key org-mode-map "\C-c\C-xL" 'org-shiftmetaleft) ; tty
というようにM-S-leftはC-cC-xL(Lは大文字)で代用できます。
同様に他のshift+矢印キーも代用コマンドがあるようです。
オリジナルでいろいろ試してみましたが、とりあえず.emacsのorgの設定の下に以下のようなスクリプトを追加してみてください。
(add-hook 'org-load-hook
(lambda()
(define-key org-mode-map "\M-ol" 'org-shiftmetaleft)
(define-key org-mode-map "\M-or" 'org-shiftmetaright)
(define-key org-mode-map "\M-ou" 'org-shiftmetaup)
(define-key org-mode-map "\M-od" 'org-shiftmetadown)
(define-key org-mode-map [?\e left] 'org-metaleft)削除
(define-key org-mode-map [?\e right] 'org-metaright)削除
(define-key org-mode-map [?\e up] 'org-metaup)削除
(define-key org-mode-map [?\e down] 'org-metadown)削除
(define-key org-mode-map "\M-o<" 'org-timestamp-down-day) ;<
(define-key org-mode-map "\M-o>" 'org-timestamp-up-day) ;>
(define-key org-mode-map "\M-oa" 'org-shiftup) ;A
(define-key org-mode-map "\M-ov" 'org-shiftdown) ;V
))
※どうやら最初の2行と最後の1行はなくてもよさそうです。
こんな感じで直すと、どうもM-oが太字か何か文字の設定にあてられているようですが、なんとか動きそうです。
やっていることは、org.elの15360行以下のキー定義を.emacsに追加して書くというものなので、
もしも\M-oがだめなら代わりの文字の組み合わせでうまく動くものを探してみてください。
Emacsのバージョンが上がったり、orgのバージョンが上がるたびに、それまで使われていなかったキーバインドが使われてしまうので、あいているキーを捜してみるしかないです。
Lispの意味は
(define-key org-mode-map "キー" 'コマンド名)
(キー定義 org-mode上での "割り当てるキーコマンド" 'コマンド名)
というような感じです。
そして例えば関数名org-shiftmetarightだとすると、org.elの上のほうを検索すると"Demote Subtree"、"Insert Column"の2つの関数にorg-shiftmetarightという同じキーコマンドが使われていることがわかります。例えば"Demote Subtree"が動かない場合はorg-shiftmetarightのところのキーの割り当てを変更すればよいと推測できます。
確か、どのキーが使われているが検索するコマンドがEmacsにあったと思うのですが忘れてしまいました。調べてみてください。
私もテストをするときは、Zeditorで.emacsを読み込んで、書き直し、Emacsを立ち上げて、検証し、だめならEmacsを落として再度Zeditorで読み込んでということを繰り返してテストしています。
- 2006-08-30 (Wed) 14:47:38 まさ? : T.Okanoさんこんにちは。コメント頂いていたのに気づきませんでした、すみません。実は、リンク張って頂いたページの設定を.emacsに書いてみたんですが、"File mode specification error"で読み込みが止まってしまいます。エラーの内容は"Key sequence M-s l uses invalid prefix characters"とのことで、emacs-lispを全く理解しない私にはどうしてよいのやら困っています。ちょっとだけググって見ると、どうも既にこのkeyが他の機能にアサインされていると云うことみたいなですが、よくわかりません。私はorg.elの4.43をC-3000上のemacs21.2で使っています。もし何か直ぐに思いつかれるようならばコメント頂けるとたすかります。もし色々と調べるようなことでお手数をお掛けするようでしたら、キーバインドの検証が終わるまで気長に待ちます。
- 2006-08-06 (Sun) 00:29:26 T.Okano : こんにちは>まささん。
実は新しいバージョンは使い込んでないのでキーバインドの修正に書いてあるのが、個人的には今でも最新というわけで、すみません。
ようやく、怒涛のバージョンアップが終わったので、新バージョンのマニュアルの翻訳の方を再開しようとは思いますが、まだ時間がかかりそうです。マニュアルを翻訳しながら、キーバインドの検証をしているような次第で、キーバインド全体を確認するのはいつになるやら。
- 2006-08-06 (Sun) 00:22:34 T.Okano : こんにちは>hogeさん。回答遅く成りました。
org-modeは断片的なメモというのは得意でないかも。基本的にはアウトラインプロセッサーだと思うので、日誌をつけるのはよいかもしれませんが、ToDoに使うほうが自然かもしれません。
- 2006-08-04 (Fri) 16:05:20 まさ? : このページ、素晴らしいですね! ところで、ザウルスで効かないいくつかのキーバインドに関してまとめて頂けるとありがたいです。代替のキーバインドとか。
- 2006-07-31 (Mon) 15:16:37 hoge? : こんにちは、howmユーザなのですが、org-modeはhowmのような断片的なメモを沢山書くのに適しているのでしょうか。