emacs组织模式下的ISO转换

emacs组织模式下的ISO转换,emacs,include,org-mode,transclusion,Emacs,Include,Org Mode,Transclusion,问:在emacs组织模式下有没有办法进行转换 我所说的“转换”,是指在fileA.org和fileB.org中的某个地方,包括“fileInc.org”,以及让fileInc.org中的树出现在这两个地方。实际出现,而不仅仅是被链接到。 (可能带有条件包含、转换,例如嵌套深度(***个数)) 我知道#setupfile,但这似乎只适用于模式,而不适用于真实文本 我知道, 但恐怕他们只在出口时工作 我要找的东西,在正常的emacs组织模式缓冲工作。 (实际上,在非组织模式缓冲区中工作的东西可能很好

问:在emacs组织模式下有没有办法进行转换

我所说的“转换”,是指在fileA.org和fileB.org中的某个地方,包括“fileInc.org”,以及让fileInc.org中的树出现在这两个地方。实际出现,而不仅仅是被链接到。 (可能带有条件包含、转换,例如嵌套深度(***个数))

我知道#setupfile,但这似乎只适用于模式,而不适用于真实文本

我知道, 但恐怕他们只在出口时工作

我要找的东西,在正常的emacs组织模式缓冲工作。 (实际上,在非组织模式缓冲区中工作的东西可能很好。)

我有锅炉板,我想包括在多个文件


这样的东西存在吗?

嗯。。。我不认为存在这样的情况,但编写一个动态块来实现这一点非常简单。以下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)))
然后,要包含给定文件的行范围,可以创建动态块,如下所示:

 #+BEGIN: transclusion :filename "~/testfile.org" :min 2 :max 4
 #+END:
并自动填充
C-C-x C-u
。跳过“最小”和“最大”参数以包含整个文件。请注意,您可以将
org update all dblocks
绑定到一个钩子,以便在访问文件或保存时更新此范围


有关动态块的详细信息,请访问。希望这有帮助

有没有人把它改编成特别的头条新闻?我还没有发现任何公开的东西(我在这里发布了一个相关问题,如果有人发现或制作了类似的东西,最好能像
#+INCLUDE
那样使用标记。请解释一下,函数名称中的列是什么意思?