Pregunta:
Me gustaría escribir mis propias notas / pruebas / código en org y luego usar org-bable-tangle
para producir archivos fuente. Sin embargo, todos estos archivos están sujetos al control de versiones y, por lo tanto, están sujetos a cambios desde fuera del entorno de mi organización.
Me gustaría poder tener varios bloques src
y luego enredarme con un montón de archivos diferentes, cada uno de los cuales estaría comprometido con el control de versiones. Pero al mismo tiempo, ser capaz de "desenredar" cada uno de estos archivos en mi archivo de organización después de realizar cualquier cambio en el control de versiones.
¿Existe alguna forma sencilla de hacer esto? Ahora estoy considerando jugar con insert-file-contents
Respuesta:
Sí, es org-babel-detangle
.
org-babel-detangle es una función Lisp compilada interactiva en
ob-tangle.el
.
(org-babel-detangle &optional SOURCE-CODE-FILE)
Propagar los cambios en el archivo fuente de nuevo al archivo Org. Esto requiere que los bloques de código se mezclen con comentarios de enlaces que permitan encontrar los bloques de código originales.
Debe establecer el argumento del encabezado de comments
en el link
para que funcione, por ejemplo,
#+begin_src ruby :tangle hello.rb :comments link
puts 'hello'
#+end_src
luego use Mx org-babel-tangle
para exportar el bloque de código, se hello.rb
un nuevo archivo llamado hello.rb
, debe tener contenidos similares como el siguiente
~ $ cat hello.rb
# [[file:~/foo.org][No heading:1]]
puts 'hello'
# No heading:1 ends here
~ $
Finalmente, abra hello.rb
en Emacs, cambie hello
a hello world
y ejecute Mx org-babel-detangle
hello.rb
en el hello.rb
de hello.rb
. El archivo org se actualizará
#+begin_src ruby :tangle hello.rb :comments link
puts 'hello world'
#+end_src