Karışık bir dosyadaki değişiklikleri orijinal kuruluş dosyasına senkronize etme


12

Senaryo yazmak için çeşme modlu org modunu kullanıyorum.

Organizasyon için organizasyon ve senaryo formatlama için çeşme.

Bu amaç için kullandığım kod:

Kuruluşta (çeşme) kaynak bloklarıyla çalışma ayarları.

;; 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)

Örneğin :

Eylem 1

** SQ 1

*** Sahne 1

Sahneye ve karakterlerin ne yaptığına ve bilmem gereken her şeye ilişkin bir sürü metin, ancak senaryoda hiç bitmeyecek.

BEGIN_SRC çeşmesi

senaryo metni

END_SRC

Şimdi I Cc 've yukarıdakileri yeni bir tamponda açar ve oradan alabilirim.


Mevcut kurulumumdaki sorun, senaryo metnini bütünüyle görmeme izin vermemesi.

Yaklaşık 50'den fazla blokum var ve aşağıdakileri başarmak istiyorum:

Kuruluşun tüm çeşme bloklarını belirli bir dosyaya ihraç etmesini istiyorum, çeşme senaryosu diyelim. Bu şekilde yalnızca senaryoyu içeren tek bir dosyam var.

Tüm düzenlemelerin kuruluş dosyasıyla senkronize edilmesini sağlayın. Çeşme senaryosunda herhangi bir şeyi düzenlersem, org'daki kaynak bloğu değişikliği güncellemeli ve tersi de geçerlidir.


Bunu yapmak için, kuruluş dosyama aşağıdaki özellikleri ekledim:

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

I Cc Cc zaman hiçbir org-babel yürütme işlevi bulundu olduğunu söyleyen bir hata ile döner.

Ve ben Cc Cv t 0 blok karışık diyor.

Yaklaşımım yanlış mı yoksa bir şey mi kaçırıyorum?

Düzenleme: Özellikleri şu şekilde değiştirdim:

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

ve ben Cc Cv t zaman kaynak blokları bir dosya adı dolambaçlı. Şimdi senkronizasyon kısmı çözülmeye devam ediyor.


Bu, programlama için de yararlı olacak bir şeydir. Bir göz outshine.elatabilirsin, karşıt yolu alıyor gibi görünüyor (bir org tamponunda görüntülenebilen yorumlara sahip kaynak dosya), ancak istediğiniz şeye yaklaşabilir. Feragatname: Henüz kendim denemedim (henüz).
T. Verron

@ T.Verron Outshine, aynı dosyanın farklı modlara sahip ayrı arabelleklerde görülebildiği mercime benzer görünüyor. Merceksi olmayan ek özelliklere sahip olup olmadığını kontrol etmek için daha fazla bilgi edeceğim.
meraklı scribbler

Bu iki yönlü senkronizasyon var olabilir (sanmıyorum, ancak org modu özellikleri fark edilmeden geçme eğilimindedir), ancak çeşme olmayan metnin görünürlüğünü değiştirmek çok daha kolay olacaktır. Daha sonra arada bir dosyaya dolaştırmaya devam edebilirsiniz.
Malabarba

org-babel-detangleBunu iddia eden bir işlev vardır (bağlantı yorumları ile karışık olun). Hiç işe yarayamadım.
erikstokes

2
Org-babel-detangle'yı test ettim ve "üretim kodundan" çok az test yapsam da, beklendiği gibi çalıştı, ancak bağlantılı yorumlarla doğru bir şekilde
dondu

Yanıtlar:


6

Aynı dosya içinde farklı belge biçimleri (örneğin kuruluş ve çeşme) arasında iki yönlü gidiş-dönüş bağlantısını uygulayan yaygın olarak bilinen bir seçenek, Phillip Lord tarafından geliştirilen lentic server özelliğidir. Sanki kurulabilir lentik MELPA depo yoluyla pakete.

Aynı dosyada aynı anda iki farklı düzenlenebilir görünümle bağlantılı olarak kuruluş modu ve lisp entegrasyonunu gösteren bir ekran görüntüsü vardır . Birinde değişiklik diğerinde değişiklik yapar. İhtiyacınız olan formatlara uyum sağlamak için bazı ilk kurulumlar gerekebilir.

Bu, düzenleme için daha uygun olan, org-babel aracılığıyla dolaştırmak ve dolanmanın tek yönlü çıktısını söylemek daha zengin bir entegrasyon.


"Yaygın olarak bilinen" ifadeye itiraz ediyorum, çünkü burada cevabınızdan biraz mercimek buldum. Ayrıca, melpa'da görebileceğiniz gibi, temelde saf sihir olan bir paket için beklediğim kadar çok kurulum yok!
Christian Herenz

1

Partiye biraz geç kaldım, ancak karışık blokları harici dosyalarıyla senkronize etmek istemiştim.

Bunun için org-tanglesync'i tavsiye edebilirim

Bu paket :tangle <filename>, bir kuruluş dosyasının başlığında bir özellik arar ve blok içeriğini bu dosyayla karşılaştırır. Arka planda bir fark gerçekleştirilir ve daha sonra kullanıcıdan dış değişiklikleri çekmesi veya reddetmesi istenir.

Bunun daha sezgisel olduğunu düşünüyorum org-babel-detangleçünkü harici dosyanın çalışması için ekstra org-babel büyüsüne sahip olmasını gerektirmez, yani dış dışa aktarılan blokları izleyen kaynak dosyadır, aksi halde değil.


2
Detaylandırabilir misin?
DoMiNeLa10

1
@ DoMiNeLa10 ne dedi. Belki bu paketin ne yaptığı ve buradaki çözüm olarak nasıl kullanıldığı hakkında bir şey söyleyin, önerilen diğer çözümleri kullanmaktan farklıdır.
Drew

güncellenen, faydalı moderasyon için teşekkür ederim
Mehmet Tekman
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.