2013-03-10 29 views
5

S: emacs org-modunda transclusion yapmak için herhangi bir yolu var mı?Emacs org modunda ISO aktarımı?

"Transclusion" ile, yani fileA.org ve fileB.org'da "fileInc.org" dahil olmak üzere - ve her iki yerde de fileInc.org'dan ağacın bulunması gibi şeyler kastediyorum. Aslında görünür, sadece bağlantılı değil. (Muhtemelen koşullu dahil etme, dönüştürme, örneğin yuvalama derinliği (*** s sayısı)).

#setup dosyası hakkında birşey biliyorum, ancak bu yalnızca metinlerde değil, modlarda çalışacak gibi görünüyor.

http://orgmode.org/manual/Include-files.html, hakkında biliyorum, ancak AFAIK yalnızca dışa aktarma zamanında çalışıyorlar.

Normal bir emacs org modu arabelleğinde çalışan bir şey arıyorum. (Aslında, org modu olmayan arabelleklerde çalışan bir şey hoş olabilir.)

Birden çok dosyaya eklemek istediğim kazan plakası var.

Böyle bir şey var mı?

cevap

7

Hmm ... Bunun gibi bir şey olduğunu sanmıyorum, ancak bunu yapmak için dinamik bir blok yazmak yeterince kolaydı. Aşağıdaki elisp benim için çalışıyor:

#+BEGIN: transclusion :filename "~/testfile.org" :min 2 :max 4 
#+END: 

Ve C-c C-x C-u ile otomatik doldurmak:

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

Sonra belirli bir dosyadan bir satır aralığı dahil etmek, bunu gibi dinamik bir blok oluşturabilir. Tüm dosyayı içerecek şekilde min ve maks. org-update-all-dblocks'u bir kancaya bağlayabileceğinizi unutmayın, böylece dosyayı ziyaret ettiğinizde veya kaydettiğinizde bu aralık güncelleştirilir.

http://orgmode.org/org.html#Dynamic-blocks adresindeki dinamik bloklar hakkında daha fazla bilgi. Bu yardımcı olur umarım!

+0

Bunu belirli başlıklar almak için uyarlayan var mı? Henüz bir şey bulamadım. (Http://emacs.stackexchange.com/questions/12562/org-mode-headings-in-multiple-places- at-once-transclusion – avv

+0

'# + INCLUDE' yolunda etiketlerle çalışmasını sağlamak güzel olurdu. – AlwaysLearning

+0

Açıklayabiliyor musunuz, fonksiyonun ismindeki sütunun anlamı nedir? – AlwaysLearning

İlgili konular