Đồng bộ hóa các thay đổi trên tệp bị rối trở lại tệp org gốc


12

Tôi đang sử dụng chế độ org với chế độ đài phun nước để viết kịch bản.

Org cho tổ chức và đài phun nước để định dạng kịch bản.

Đây là mã tôi sử dụng cho mục đích này:

Cài đặt để làm việc với các khối nguồn (đài phun nước) trong org.

;; 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)

Ví dụ :

Hồi 1

** 1

*** Cảnh 1

Bunch của văn bản liên quan đến cảnh và những gì các nhân vật đang làm và tất cả mọi thứ tôi cần biết nhưng sẽ không bao giờ kết thúc trong kịch bản.

Đài phun nước BEGIN_SRC

kịch bản văn bản

KẾT THÚC

Bây giờ tôi Cc 'và nó mở ra ở trên trong một bộ đệm mới và tôi có thể đưa nó lên từ đó.


Vấn đề với thiết lập hiện tại của tôi là nó không cho phép tôi xem toàn bộ văn bản kịch bản.

Tôi có khoảng hơn 50 khối như vậy và tôi muốn đạt được những điều sau:

Tôi muốn org xuất tất cả các khối đài phun nước sang một tệp cụ thể, giả sử kịch bản màn hình. Bằng cách đó tôi chỉ có một tệp duy nhất với kịch bản.

Có tất cả các chỉnh sửa được đồng bộ hóa với tệp org. Nếu tôi chỉnh sửa bất cứ điều gì trong kịch bản màn hình đài phun nước, khối nguồn trong org sẽ cập nhật thay đổi và ngược lại.


Để làm điều này, tôi đã chèn các thuộc tính sau vào tệp org của mình:

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

Khi tôi Cc Cc, nó trả về với một lỗi thông báo rằng không tìm thấy chức năng thực thi org-babel.

Và khi tôi Cc Cv t thì nó báo 0 khối bị rối.

Là cách tiếp cận của tôi không chính xác hoặc tôi đang thiếu một cái gì đó?

Chỉnh sửa: Tôi đã thay đổi các thuộc tính thành:

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

và khi tôi Cc Cv, nó làm rối các khối nguồn thành một tên tệp. Bây giờ phần đồng bộ vẫn còn để được giải quyết.


Đây là một cái gì đó sẽ hữu ích cho lập trình quá. Bạn có thể nhìn vào outshine.el, nó dường như đi theo con đường ngược lại (tệp nguồn với các nhận xét có thể được xem trong bộ đệm org), nhưng nó có thể đến gần với những gì bạn muốn. Tuyên bố miễn trừ trách nhiệm: bản thân nó chưa bao giờ thử.
T. Verron

@ T.Verron Outlight có vẻ tương tự như lentic trong đó cùng một tệp có thể được nhìn thấy trong các bộ đệm riêng biệt với các chế độ khác nhau. Tôi sẽ đọc thêm để kiểm tra xem có các tính năng bổ sung mà lentic không.
viết nguệch ngoạc

Đồng bộ hóa hai chiều này có thể tồn tại (tôi không nghĩ vậy, nhưng các tính năng của chế độ org có xu hướng không được chú ý), nhưng sẽ rất dễ dàng hơn để chỉ hiển thị văn bản không phải là đài phun nước. Thỉnh thoảng bạn vẫn có thể vướng vào một tập tin.
Malabarba

Có một chức năng org-babel-detangleyêu cầu điều này (cung cấp cho bạn rối với các bình luận liên kết). Tôi chưa bao giờ có thể làm cho nó hoạt động.
erikstokes

2
Tôi vừa thử nghiệm org-babel-detangle và nó hoạt động như mong đợi, mặc dù tôi đã thực hiện các thử nghiệm rất tối thiểu, khác xa với "mã sản xuất", nhưng đã gỡ bỏ chính xác với các nhận xét được liên kết
Joafigue

Câu trả lời:


6

Một tùy chọn được biết đến rộng rãi thực hiện liên kết hai chiều giữa các định dạng tài liệu khác nhau (ví dụ như org và đài phun nước) trong cùng một tệp là tính năng máy chủ lentic được phát triển bởi Phillip Lord. Nó có thể được cài đặt như các lentic gói thông qua kho MELPA.

Có một screencast hiển thị chế độ org và tích hợp lisp trong cùng một tệp với hai chế độ xem có thể chỉnh sửa khác nhau cùng một lúc, được liên kết. Thay đổi trong một làm cho thay đổi trong khác. Một số thiết lập ban đầu có thể được yêu cầu để phù hợp với các định dạng bạn cần.

Đây là một sự tích hợp phong phú hơn, phù hợp hơn cho việc chỉnh sửa, hơn là nói đầu ra một chiều của rối và tháo gỡ thông qua org-babel.


Tôi tranh luận về tuyên bố "được biết đến rộng rãi", vì tôi chỉ tìm thấy về lentic từ câu trả lời của bạn ở đây. Ngoài ra, như bạn có thể thấy trên melpa, nó không có nhiều cài đặt như tôi mong đợi đối với một gói về cơ bản là ma thuật thuần túy!
Christian Herenz

1

Hơi muộn đến bữa tiệc, nhưng tôi có cùng mong muốn đồng bộ các khối rối với các tệp bên ngoài của chúng.

Đối với điều này, tôi có thể đề nghị org-tanglesync

Gói này tìm kiếm một :tangle <filename>thuộc tính trong tiêu đề của tệp org và so sánh nội dung khối với nó. Một khác biệt được thực hiện trong nền, và sau đó người dùng được nhắc kéo hoặc từ chối các thay đổi bên ngoài.

Tôi thấy rằng điều này trực quan hơn là org-babel-detanglevì nó không yêu cầu tệp bên ngoài phải có thêm ma thuật org-babel để nó hoạt động, tức là nó là tệp nguồn theo dõi các khối xuất bên ngoài chứ không phải theo cách khác.


2
Bạn có thể xây dựng?
DoMiNeLa10

1
Những gì @ DoMiNeLa10 nói. Có thể nói điều gì đó về những gì gói đó làm, và cách sử dụng nó làm giải pháp ở đây khác với việc sử dụng các giải pháp được đề xuất khác.
vẽ

đã cập nhật, cảm ơn bạn vì sự kiểm duyệt hữu ích
Mehmet Tekman
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.