Gostaria de escrever minhas próprias notas / testes / código na organização e depois usá-lo org-bable-tangle
para produzir arquivos de origem. No entanto, todos esses arquivos estão sujeitos ao controle de versão e, portanto, sujeitos a alterações fora do meu ambiente organizacional.
Eu gostaria de poder ter um número de src
blocos e depois enredar em vários arquivos diferentes, cada um dos quais seria comprometido com o controle de versão. Mas, ao mesmo tempo, consiga "desembaraçar" cada um desses arquivos de volta ao meu arquivo organizacional depois de extrair quaisquer alterações do controle de versão.
Existe alguma maneira simples de fazer isso? Agora estou pensando em brincar cominsert-file-contents
Respostas:
É sim
org-babel-detangle
.Você precisa definir o
comments
argumento do cabeçalholink
para fazê-lo funcionar, por exemplo,use
M-x org-babel-tangle
para exportar o bloco de código, um novo arquivo nomeadohello.rb
será criado e deverá ter conteúdo semelhante ao seguintePor fim, abra
hello.rb
no Emacs, mudehello
parahello world
e executeM-x org-babel-detangle
nohello.rb
buffer do. O arquivo organizacional será atualizadofonte
org-babel-detangle
a documentação para entender o propósito e o uso.insert-file-contents
?Há também o org-tanglesync , que possui um método muito mais simples de sincronizar do que
org-babel-detangle
Essencialmente, se um bloco é emaranhado em um arquivo externo, toda vez que esse bloco é editado, o arquivo externo também é verificado e, se um diff for detectado, o usuário será solicitado a rejeitar ou puxar as alterações externas para o bloco org src.
Isso também possui funções para processar automaticamente todos os blocos emaranhados em um buffer. Espero que ajude.
fonte