Tengo varios bloques de origen que están enredados en el mismo archivo. Cuando invoco C-c '
dentro de un bloque, solo este bloque específico se muestra en un nuevo búfer.
¿Existe la posibilidad de mostrar todas las partes de este archivo dentro de este búfer (en lugar de solo este fragmento específico)?
Ejemplo:
#+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
Si golpeo C-c '
en el primer bloque obtengo:
(defvar *ok* "")
pero yo quiero:
(defvar *ok* "")
(defun add-one (n) (+ 1 n))
org-mode
org-babel
text-editing
Beyeran
fuente
fuente
org-babel-tangle-jump-to-org
org-babel-detangle
que afirman hacer esto si se enredan con los comentarios del enlace (:comments link
en el bloque de origen). Parece que no puedo hacer que funcionen bien.Respuestas:
Lo que está buscando es una función de edición bidireccional que sobreviva a las ediciones durante el viaje de ida y vuelta y no solo la salida unidireccional común para enredar y desenredar comandos. La mejor solución que he encontrado es el texto lenticular que está disponible en el paquete léntica en Melpa.
fuente
Agregue este argumento de encabezado
Enredo. Ahora puede editar el archivo enredado y emitirlo
org-babel-detangle
para que todo vuelva al archivo de organización.fuente
Puedo recomendar org-tanglesync , que tiene un método de sincronización mucho más simple que
org-babel-detangle
Esencialmente, si un bloque está enredado en un archivo externo, cada vez que se edita ese bloque, también se verifica el archivo externo, y si se detecta un diferencial, se le solicita al usuario que rechace o extraiga los cambios externos en el bloque de la organización. .
Esto también tiene funciones para procesar automáticamente todos los bloques enredados en un búfer.
fuente