Kra*_*lew 7 emacs include org-mode transclusion
问:有没有办法在emacs org-mode中进行翻译?
通过"transclusion",我的意思是,在fileA.org和fileB.org中的某些内容,"包括"fileInc.org - 并且来自fileInc.org的树出现在两个地方.实际上看起来,不只是被链接到.(可能具有条件包含,变换,例如嵌套深度(***的数量)).
我知道#setupfile,但这似乎只适用于模式,而不是真正的文本.
我知道http://orgmode.org/manual/Include-files.html,但AFAIK只在出口时工作.
我正在寻找在普通的emacs org-mode缓冲区中工作的东西.(实际上,在非组织模式缓冲区中工作的东西可能会很好.)
我有锅炉板,我想包含在多个文件中.
这样的事情存在吗?
小智 10
嗯......我不认为这样的事情存在,但写一个动态块就足够了.以下elisp为我工作:
(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)))
Run Code Online (Sandbox Code Playgroud)
然后要包含给定文件的行范围,您可以创建一个动态块,如下所示:
#+BEGIN: transclusion :filename "~/testfile.org" :min 2 :max 4
#+END:
Run Code Online (Sandbox Code Playgroud)
并自动填充C-c C-x C-u.跳过min和max args以包含整个文件.请注意,您可以绑定org-update-all-dblocks到挂钩,以便在您访问文件或保存时更新此范围.
有关动态块的更多信息,请访问http://orgmode.org/org.html#Dynamic-blocks.希望这可以帮助!
| 归档时间: |
|
| 查看次数: |
696 次 |
| 最近记录: |