Modifica di più blocchi di origine in un buffer


10

Ho più blocchi sorgente che sono tutti aggrovigliati nello stesso file. Quando invoco C-c 'all'interno di un blocco, viene mostrato solo questo blocco specifico in un nuovo buffer.

Esiste la possibilità di mostrare tutte le parti di questo file all'interno di questo buffer (anziché solo questo frammento specifico)?

Esempio:

#+begin_src emacs-lisp :tangle foo.el
(defvar *ok* "")
#+end_src

This is where the variable is stored...
#+begin_src emacs-lisp :tangle foo.el
(defun add-one (n) (+ 1 n))
#+end_src

Se colpisco C-c 'nel primo blocco ottengo:

(defvar *ok* "")

ma io voglio:

(defvar *ok* "")
(defun add-one (n) (+ 1 n))

2
Ci sono funzioni org-babel-tangle-jump-to-org org-babel-detangleche pretendono di farlo se si aggrovigliano con i commenti sui collegamenti ( :comments linknel blocco sorgente). Non riesco a farli funzionare bene.
erikstokes

Risposte:


2

Quello che stai cercando è una funzione di modifica a due vie che sopravviva alle modifiche durante il round trip e non solo un output unidirezionale comune per aggrovigliare e districare i comandi. La soluzione migliore che ho trovato è il testo lenticolare che è disponibile come pacchetto lentico su Melpa.


2

Aggiungi questo argomento di intestazione

#+PROPERTY: header-args+ :comments link

Groviglio. Ora puoi modificare il file aggrovigliato stesso ed emettere il problema org-babel-detangleper ripristinare tutto nel file org.


2

Posso consigliare org-tanglesync , che ha un metodo di sincronizzazione molto più semplice diorg-babel-detangle

In sostanza, se un blocco viene aggrovigliato a un file esterno, ogni volta che quel blocco viene modificato, viene controllato anche il file esterno e se viene rilevato un diff, all'utente viene richiesto di rifiutare o estrarre le modifiche esterne nel blocco org src .

Questo ha anche funzioni per elaborare automaticamente tutti i blocchi aggrovigliati in un buffer.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.