얽힌 파일의 변경 사항을 원래 조직 파일로 다시 동기화


12

분수 모드와 함께 org-mode를 사용하여 시나리오를 작성하고 있습니다.

시나리오를위한 조직 및 시나리오를위한 분수.

이 목적으로 사용하는 코드는 다음과 같습니다.

조직에서 (분수) 소스 블록 작업을위한 설정.

;; prevent org from messing with indentation of the source text.
(setq org-src-preserve-indentation t)
(setq org-edit-src-content-indentation 0)

;; open the buffer for editing fountain in another window.
(setq org-src-window-setup (quote reorganize-frame))

;; prevent a message in the edit buffer from being shown.
(setq org-edit-src-persistent-message nil)

;; save edits in the fountain buffer to the org buffer after x sec
(setq org-edit-src-auto-save-idle-delay 1)

예를 들면 다음과 같습니다.

1 막

** 1 분기

*** 장면 1

장면과 관련된 텍스트와 캐릭터의 행동 및 알아야 할 모든 내용이 시나리오에서 끝나지 않습니다.

BEGIN_SRC 분수

시나리오 텍스트

END_SRC

이제 나는 Cc '이고 새로운 버퍼에서 위를 열어 거기에서 가져올 수 있습니다.


현재 설정의 문제점은 전체 화면 텍스트를 볼 수 없다는 것입니다.

나는 약 50 개 이상의 블록을 가지고 있으며 다음을 달성하고 싶습니다.

org가 모든 분수 블록을 특정 파일로 내보내고 싶습니다. 그렇게하면 각본 만있는 단일 파일이 있습니다.

모든 수정 사항을 조직 파일과 동기화하십시오. 분수 시나리오에서 무엇이든 편집하면 조직의 소스 블록이 변경 사항을 업데이트해야하며 그 반대도 마찬가지입니다.


이를 위해 조직 파일에 다음 속성을 삽입했습니다.

:PROPERTIES:
:file: "~/files/fountain-screenplay.fountain"
:cache: yes
:comments: yes 
:tangle: yes
:results: silent
:END: 

내가 Cc Cc 일 때 No org-babel execute function found라는 오류와 함께 반환됩니다.

그리고 I Cc Cv t는 0 블럭 얽힌 상태입니다.

내 접근 방식이 올바르지 않습니까, 아니면 뭔가 빠졌습니까?

편집 : 속성을 다음으로 변경했습니다.

#+properties :file .fountain :cache yes and so on 

그리고 I Cc Cv t에서는 소스 블록을 filename.fountain으로 엉킨 다. 이제 동기화 부분을 해결해야합니다.


이것은 프로그래밍에도 유용합니다. 를 살펴볼 수는 있지만 outshine.el반대 방향 (조직 버퍼에서 볼 수있는 주석이있는 소스 파일)을 취하는 것처럼 보이지만 원하는 것에 가깝습니다. 면책 조항 : 직접 시도하지는 않았습니다 (아직).
T. Verron

@ T.Verron Outshine은 동일한 파일을 다른 모드의 별도 버퍼에서 볼 수있는 lentic과 비슷합니다. lentic에없는 추가 기능이 있는지 확인하기 위해 더 읽어 볼 것입니다.
curious-scribbler

이 양방향 동기화가 존재할 수 있지만 (그런데 생각하지 않지만 조직 모드 기능은 눈에 띄지 않는 경향이 있습니다.) 그런 다음 가끔씩 한 번에 파일로 엉킴을 만들 수 있습니다.
Malabarba 2016 년

org-babel-detangle이것을 주장 하는 기능 이 있습니다 (링크 주석과 얽힌 경우 제공). 나는 그것을 작동시킬 수 없었습니다.
erikstokes 2016 년

2
방금 org-babel-detangle을 테스트했는데 예상대로 작동했지만 "생산 코드"와는 거리가 먼 매우 작은 테스트를 수행했지만 링크 된 주석과 올바르게
얽혀 있습니다

답변:


6

동일한 파일 내에서 서로 다른 문서 형식 (예 : org 및 fountain)간에 양방향 왕복 링크를 구현하는 널리 알려진 옵션 중 하나는 Phillip Lord가 개발 한 lentic 서버 기능입니다. MELPA 저장소를 통해 lentic 패키지 로 설치할 수 있습니다 .

링크 된 두 개의 서로 다른 편집 가능한보기가있는 동일한 파일에서 org-mode 및 lisp 통합을 보여주는 스크린 캐스트 가 있습니다. 한 쪽에서 변경하면 다른 쪽도 변경됩니다. 필요한 형식을 수용하기 위해 일부 초기 설정이 필요할 수 있습니다.

이것은 org-babel을 통한 tangle과 detangle의 단방향 출력보다 더 풍부하고 통합되어 편집에 더 적합합니다.


나는 당신의 대답에서 빌려준 것에 대해 방금 찾았 기 때문에 "넓게 알려진"진술에 이의를 제기합니다. 또한 melpa에서 볼 수 있듯이 기본적으로 순수한 마술 패키지를 기대했을만큼 설치가 많지 않습니다!
Christian Herenz

1

파티에 약간 늦었지만 얽힌 블록을 외부 파일과 동기화하고 싶었습니다.

이를 위해 org-tanglesync를 추천 할 수 있습니다.

이 패키지는 :tangle <filename>org 파일의 헤더에서 속성을 찾고 블록 내용을 비교합니다. 백그라운드에서 diff가 수행 된 후 외부 변경을 가져 오거나 거부하라는 메시지가 표시됩니다.

org-babel-detangle외부 파일이 작동하기 위해 추가 org-babel 마술을 요구하지 않기 때문에 이것이 보다 직관적이라는 것을 알았 습니다.


2
정교하게 할 수 있습니까?
DoMiNeLa10 10

1
@ DoMiNeLa10이 말한 것. 해당 패키지의 기능과 여기에서 솔루션으로 사용하는 방법이 다른 제안 된 솔루션을 사용하는 것과 다른 점에 대해 이야기하십시오.
Drew

도움을 주셔서 감사합니다
Mehmet Tekman
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.