将纠结的文件上的更改同步回原始组织文件


12

我使用带有喷泉模式的组织模式来编写剧本。

组织的组织和剧本格式的源泉。

这是我用于此目的的代码:

在组织中使用(喷泉)源块的设置。

;; prevent org from messing with indentation of the source text.
(setq org-src-preserve-indentation t)
(setq org-edit-src-content-indentation 0)

;; open the buffer for editing fountain in another window.
(setq org-src-window-setup (quote reorganize-frame))

;; prevent a message in the edit buffer from being shown.
(setq org-edit-src-persistent-message nil)

;; save edits in the fountain buffer to the org buffer after x sec
(setq org-edit-src-auto-save-idle-delay 1)

例如 :

第1幕

** SQ 1

***场景1

一堆与场景有关的文本,角色在做什么以及我需要知道的所有内容,但这些内容永远都不会出现在剧本中。

BEGIN_SRC喷泉

剧本文字

END_SRC

现在我Cc',它将在新的缓冲区中打开上面的内容,我可以从那里开始使用它。


我当前设置的问题在于,它无法让我完整地看到剧本文本。

我有大约50多个这样的区块,我想实现以下目标:

我希望组织将所有源代码块导出到特定文件,例如源代码剧本。这样,我只有一个剧本文件。

使所有编辑都与组织文件同步。如果我在Fountain剧本中编辑任何内容,则org中的源代码块应更新更改,反之亦然。


为此,我在org文件中插入了以下属性:

:PROPERTIES:
:file: "~/files/fountain-screenplay.fountain"
:cache: yes
:comments: yes 
:tangle: yes
:results: silent
:END: 

当我抄送抄送它返回一个错误,说没有找到组织婴儿执行函数。

当我Cc Cv t时,它说0个块纠结了。

我的方法不正确还是我错过了什么?

编辑:我将属性更改为:

#+properties :file .fountain :cache yes and so on 

当我Cc Cv t将源代码块纠结为文件名时。现在,同步部分仍有待解决。


这对于编程也很有用。您可以看看outshine.el,它似乎走了相反的路(带有注释的源文件可以在组织缓冲区中查看),但它可能与您想要的很接近。免责声明:从未尝试过(至今)。
T. Verron 2015年

@ T.Verron Outshine看起来与lentic相似,在相同的文件中可以使用不同的模式在单独的缓冲区中看到同一文件。我将阅读更多内容,以检查lentic是否具有其他功能。
好奇的涂鸦者,2015年

可能存在这种双向同步(我不认为这是同步的,但是组织模式功能有被忽略的趋势),但是仅切换非喷泉文本的可见性会非常容易。然后,您仍然可以不时地纠结到文件。
马拉巴巴2015年

有一个功能可以org-babel-detangle证明这一点(只要您与链接注释纠缠不清)。我从来没有能够使它工作。
erikstokes

2
我只是测试了org-babel-detangle,并且按预期工作,尽管我做了非常少的测试,而不是“生产代码”,但是与链接的注释正确地
纠结了-Joafigue

Answers:


6

菲利普·洛德(Phillip Lord)开发的lentic服务器功能是在同一文件中的不同文档格式(例如组织和喷泉)之间实现双向链接的一种广为人知的选项。它可以安装为静水通过MELPA库包。

有一个截屏视频显示链接到同一文件中的org-mode和lisp集成,同时具有两个不同的可编辑视图。改变一个改变另一个。可能需要一些初始设置才能适应所需的格式。

与说通过org-babel进行缠结和解缠的单向输出相比,这是一个更丰富的集成,更适合于编辑。


我对“广为人知”的说法提出异议,因为我刚刚从您在此处的答案中发现了有关透镜的信息。而且,正如您在melpa上看到的那样,它的安装数量不如我期望的基本上是纯魔术的软件包!
Christian Herenz

1

聚会晚了一点,但是我也希望将纠结的块与外部文件同步。

为此,我可以推荐org-tanglesync

该程序包:tangle <filename>在组织文件的标题中查找属性,并将块内容与其进行比较。差异在后台执行,然后提示用户拉出或拒绝外部更改。

我发现这比org-babel-detangle不更直观,因为它不需要外部文件具有额外的org-babel魔术来工作,即源文件跟踪外部导出的块,而不是相反。


2
你能详细说明吗?
DoMiNeLa10

1
@ DoMiNeLa10说了什么。也许可以说一下该软件包的功能,以及如何将其用作解决方案与使用其他建议的解决方案有所不同。
德鲁

更新,感谢您的帮助适度
Mehmet Tekman
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.