Mam wiele bloków źródłowych, które wszystkie są zaplątane w ten sam plik. Kiedy wywołuję C-c '
wewnątrz jednego bloku, tylko ten konkretny blok jest wyświetlany w nowym buforze.
Czy istnieje możliwość pokazania wszystkich części tego pliku w tym buforze (zamiast tylko tego konkretnego fragmentu)?
Przykład:
#+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
Jeśli uderzę C-c '
w pierwszym bloku, otrzymam:
(defvar *ok* "")
ale ja chcę:
(defvar *ok* "")
(defun add-one (n) (+ 1 n))
org-mode
org-babel
text-editing
Beyeran
źródło
źródło
org-babel-tangle-jump-to-org
org-babel-detangle
które twierdzą, że to robią, jeśli splątujesz z komentarzami do linku (:comments link
w bloku źródłowym). Nie mogę sprawić, żeby działały prawidłowo.Odpowiedzi:
To, czego szukasz, to dwukierunkowa funkcja edycji, która przetrwa zmiany podczas podróży w obie strony, a nie tylko jednokierunkowe wyjście wspólne dla poleceń splątania i rozplątywania. Najlepszym rozwiązaniem, jakie znalazłem, jest tekst lentikularny, który jest dostępny jako pakiet lentic na MELPA.
źródło
Dodaj ten argument nagłówka
Splot. Możesz teraz edytować sam splątany plik i wydać
org-babel-detangle
polecenie powrotu do pliku org.źródło
Mogę polecić org-tanglesync , który ma znacznie prostszą metodę synchronizacji niż
org-babel-detangle
Zasadniczo, jeśli blok jest splątany z plikiem zewnętrznym, to za każdym razem, gdy ten blok jest edytowany, plik zewnętrzny jest również sprawdzany, a jeśli wykryta zostanie różnica, użytkownik jest monitowany o odrzucenie lub pobranie zmian zewnętrznych do bloku org src .
Ma również funkcje automatycznego przetwarzania wszystkich splątanych bloków w buforze.
źródło