2013-03-10 6 views
5

Q:emacs org-modeでtransclusionを行う方法はありますか?emacs org-modeでのISO移転?

"transclusion"とは、fileA.orgやfileB.orgのある時点で、 "fileInc.org"を含むようなものを意味し、fileInc.orgからのツリーを両方の場所に表示させることを意味します。実際に表示されるだけではなく、リンクされています。 (可能性として条件付き包含、変形、例えばネスティング深さ(***の数))。

私は#setupfileについて知っていますが、それは実際のテキストではなく、モードでしか機能しないようです。

私は約http://orgmode.org/manual/Include-files.html、 について知っていますが、エクスポート時にのみ機能します。

私は通常のemacs org-modeバッファーで動作するものを探しています。 (実際には、非組織モードのバッファで動作していたものが良いかもしれません)

私は複数のファイルに含めるボイラープレートを持っています。

このようなことはありますか?

答えて

7

ええと...私はこれのようなものは存在しないと思いますが、これを行うには動的なブロックを書くだけで十分でした。私のためのelisp作品次C-c C-x C-u

#+BEGIN: transclusion :filename "~/testfile.org" :min 2 :max 4 
#+END: 

と自動移入:

(defun org-dblock-write:transclusion (params) 
    (progn 
    (with-temp-buffer 
     (insert-file-contents (plist-get params :filename)) 
     (let ((range-start (or (plist-get params :min) (line-number-at-pos (point-min)))) 
      (range-end (or (plist-get params :max) (line-number-at-pos (point-max))))) 
     (copy-region-as-kill (line-beginning-position range-start) 
          (line-end-position range-end)))) 
    (yank))) 

そして、与えられたファイルから行の範囲を含めるように、あなたはそうのようなダイナミックブロックを作成することができます。 minとmaxの引数をスキップしてファイル全体をインクルードします。フックにorg-update-all-dblocksをバインドすることができるので、ファイルを参照したり保存したりするたびにこの範囲が更新されることに注意してください。

ダイナミックブロックの詳細はhttp://orgmode.org/org.html#Dynamic-blocksです。お役に立てれば!

+0

誰もがこれを採用して特定のヘッドラインを取っていますか?私はまだ何も公開していません(誰かがこのようなものを見つけたり作ったりすれば、私は関連する質問を投稿しました。http://emacs.stackexchange.com/questions/12562/org-mode-headings-in-multiple-places- at-once-transclusion – avv

+0

'#+ INCLUDE'のようにタグで動作させるといいでしょう。 – AlwaysLearning

+0

関数の名前にあるカラムの意味は何ですか? – AlwaysLearning