もつれたファイルの変更を元の組織ファイルに同期して戻す


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-screenplayにエクスポートするよう組織に求めています。そうすれば、脚本だけの1つのファイルができます。

すべての編集を組織ファイルと同期します。fountain-screenplayで何かを編集すると、orgのソースブロックで変更が更新され、その逆も同様です。


これを行うには、次のプロパティを組織ファイルに挿入しました。

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

I Cc Ccの場合、「org-babel execute functionが見つかりません」というエラーが返されます。

そして、I Cc Cv tのとき、0ブロックが絡まっていると言います。

私のアプローチは間違っていますか、何か不足していますか?

編集:プロパティを次のように変更しました:

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

I Cc Cv tの場合、ソースブロックがfilename.fountainに絡まります。現在、同期部分はまだ解決されていません。


これは、プログラミングにも役立つものです。を見るとoutshine.el、反対の道(組織のバッファーで表示できるコメント付きのソースファイル)を使用しているように見えますが、望みに近いかもしれません。免責事項:自分で(まだ)試したことはありません。
T.バーロン

@ T.Verron Outshineは、lenticに似ているようで、同じファイルが異なるモードの別々のバッファーに表示されます。lenticにはない追加機能があるかどうかを確認するために、さらに読みます。
好奇心が強い

この双方向の同期は存在する可能性があります(私はそうは思いませんが、組織モード機能は見過ごされる傾向があります)が、非噴水テキストの可視性を切り替えるだけで非常に簡単になります。その後、たまにファイルに絡むことができます。
マラバルバ

これorg-babel-detangleを主張する機能があります(リンクのコメントに絡まっている場合)。私はそれを機能させることができませんでした。
エリクスト

2
私はちょうどORG-バベル-detangleをテストし、期待どおりに働いていた、私は非常に最小限のテストをしたとはいえ、これまで「生産・コード」から、しかし、リンクされたコメントで正しくdetangled
Joafigue

回答:


6

同じファイル内の異なるドキュメント形式(たとえば、orgとfountain)間の双方向の往復リンクを実装する広く知られたオプションの1つは、Phillip Lordが開発したレンチサーバー機能です。MELPAリポジトリを介して、lenticパッケージとしてインストールできます。

同じファイル内の組織モードとLispの統合を示すスクリーンキャストがあり、同時に2つの異なる編集可能なビューがリンクされています。一方を変更すると、もう一方も変更されます。必要な形式に対応するには、初期設定が必要になる場合があります。

これは、org-babelを使用したタングルとデタングルの一方向出力よりも、よりリッチな統合であり、編集に適しています。


「広く知られている」声明に異議を唱えました。ここであなたの答えから私は丁寧に見つけたからです。また、melpaで見ることができるように、基本的に純粋な魔法のパッケージに期待したほど多くのインストールがありません!
クリスチャンヘレンツ

1

パーティーに少し遅れましたが、もつれたブロックを外部ファイルと同期させたいという同じ希望がありました。

このため、私はorg-tanglesyncをお勧めします

このパッケージ:tangle <filename>は、組織ファイルのヘッダーでプロパティを検索し、ブロックのコンテンツをそれに比較します。diffはバックグラウンドで実行され、ユーザーは外部の変更をプルまたは拒否するように求められます。

これはorg-babel-detangle、外部ファイルが機能するために追加のorg-babelマジックを必要としないため、つまり、エクスポートされた外部ブロックを追跡するソースファイルであり、その逆ではないため、より直感的であることがわかります。


2
詳しく説明してもらえますか?
DoMiNeLa10

1
@ DoMiNeLa10が言ったこと。たぶん、そのパッケージが何をするのか、そしてここでのソリューションとしてそれをどのように使用するかが、他の提案されたソリューションを使用することと異なることを言うかもしれません。
ドリュー

更新、役に立つ節度をありがとう
メフメトTekman
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.