Eu tenho vários blocos de origem que estão todos emaranhados no mesmo arquivo. Quando invoco C-c '
dentro de um bloco, somente esse bloco específico é mostrado em um novo buffer.
Existe a possibilidade de mostrar todas as partes deste arquivo dentro desse buffer (em vez de apenas esse snippet específico)?
Exemplo:
#+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 eu acertar C-c '
no primeiro bloco, recebo:
(defvar *ok* "")
mas eu quero:
(defvar *ok* "")
(defun add-one (n) (+ 1 n))
org-mode
org-babel
text-editing
beyeran
fonte
fonte
org-babel-tangle-jump-to-org
org-babel-detangle
que afirmam fazer isso se você emaranhar com comentários de link (:comments link
no bloco de origem). Parece que não consigo fazê-los funcionar direito.Respostas:
O que você procura é um recurso de edição bidirecional que sobrevive às edições durante a viagem de ida e volta e não apenas uma saída unidirecional comum aos comandos de emaranhar e desembaraçar. A melhor solução que eu encontrei é texto lenticular que está disponível como o pacote lentic em Melpa.
fonte
Adicione este argumento de cabeçalho
Emaranhado. Agora você pode editar o próprio arquivo emaranhado e emitir
org-babel-detangle
para recuperar tudo no arquivo organizacional.fonte
Posso recomendar o org-tanglesync , que tem 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.
fonte