Tập tin lại cây phác thảo vào tập tin chế độ org mới?


13

Tôi mới bắt đầu với chế độ org và tưởng tượng một quy trình làm việc theo đó tôi nắm bắt các tác vụ và ghi chú mới trong tệp "hộp thư đến" ở chế độ org. Đối với các nhiệm vụ phát triển thành các dự án, tôi sẽ tưởng tượng việc tinh chỉnh chúng thành một tệp chế độ org mới sau đó được thêm vào chương trình nghị sự của tôi.

Các nhãn hiệu org-mode mô tả refiling một cây chủ yếu là cách tôi đang tìm kiếm, ngoại trừ việc nó dường như chỉ để cho phép refiling phần trong cùng một tập tin. Những gì tôi muốn làm là lấy cây đó và lọc lại nó thành một tệp mới (và sau đó tốt nhất là thêm tệp vào danh sách chương trình nghị sự).

Tôi có thể sao chép-dán vào một bộ đệm mới, sau đó thêm bộ đệm mới vào chương trình nghị sự, nhưng có vẻ như đây là thứ mà các vị thần chế độ org sẽ có một lối tắt.


Tại sao bạn muốn tạo một tệp mới cho mọi dự án? Có những dự án nhỏ và những dự án lớn, vì vậy bạn có thể có một tệp dự án.org dưới dạng một tệp ươm tạo chứa tất cả các dự án ban đầu và nếu một dự án phát triển lớn đến mức nó xứng đáng với tệp của chính nó thì bạn có thể tạo nó bằng tay.
Tom

Cảm ơn, Tom. Đó là suy nghĩ của tôi. Những điều lớn lao chuyển đến tập tin của chính họ khi họ trở nên quá lớn. Tôi đã tìm thấy một lá cờ cho phép tôi lọc lại một tệp khác trong danh sách chương trình nghị sự của mình, nhưng chỉ dưới một tiêu đề hiện có. Tôi sẽ đào sâu thêm một chút để xem liệu tôi có thể chỉ cần thêm một cây vào một tệp org trống mới không ...
Peter

1
@Peter bạn có thể lọc lại bất kỳ cây nào vào một tệp khác. nhưng trước tiên, bạn cần thêm tệp đích vàoorg-agenda-files
kindahero

@kindahero: Đó có phải là một lựa chọn mặc định? Tôi có một tệp "test1.org" với một cây mà tôi muốn chuyển đến một tệp trống "test2.org" đã được lưu và thêm vào chương trình nghị sự với Cc [. Các mục tiêu refile duy nhất mà nó cung cấp cho tôi dưới dạng tùy chọn hoàn thành là từ "test1.org."
Peter

Câu trả lời:


1

Đây là một chức năng elisp nhanh và bẩn có thể được sửa đổi như bạn muốn.

(hủy bỏ tập tin con sang tập tin mới ()
  (tương tác)
  "hỗ trợ nhanh chóng trong việc chuyển một cây con org sang một tệp mới"
  (org-copy-Subree nil t)
;;; Câu lệnh setq dài này lấy tiêu đề của tiêu đề đầu tiên, để sử dụng làm tên tệp mặc định cho tệp .org mới.
(setq đầu tiên
  (với bộ đệm tạm thời
    (yank)
    (bắt đầu của bộ đệm)
    (tìm kiếm chuyển tiếp "" nil nil 1)
    (setq title-start (điểm))
    (kết thúc trực quan)
    (setq title-end (điểm))
    (setq tiêu đề đầu tiên (tiêu đề-chuỗi tiêu đề bắt đầu kết thúc tiêu đề)
  ))
(setq def-filename (tiêu đề đầu tiên ".org"))
(hãy ((insert-default-thư mục t))
  (find-file-other-window  
    (tên tệp đọc "Di chuyển cây con sang tệp:" tên tệp def)
  ))
(org-paste-Subree)
;;; lệnh cuối cùng này thêm tệp .org mới vào chương trình nghị sự
(org-agenda-file-to-front)
)

Bạn có thể thử mã này nhanh bằng cách dán vào *scratch*bộ đệm của bạn và nhấn Ctrl+ j. Sau đó đi đến một cây con trong tệp chế độ org và nhấn Alt+ xđến M-x subtree-to-new-file.

Nếu bạn muốn nó được đặt đúng chỗ mỗi khi bạn sử dụng emacs và hoàn toàn không phù hợp với elisp, điều dễ nhất có thể là dán mã này vào đâu đó vào .emacstệp cấu hình của bạn và lưu nó. Bạn cũng có thể thêm một dòng trước hoặc sau hàm để cung cấp cho nó một liên kết phím. Cách dễ nhất để làm điều đó (nhưng có thể không phải là tốt nhất) sẽ là một cái gì đó như : (global-set-key "\C-xw" 'subtree-to-new-file).


Chà, tôi đã thực sự chuyển sang một hướng khác từ đây, nhưng điều này thật khó khăn. Tôi đã hỏi điều này từ lâu và thật tuyệt khi thấy câu trả lời. Cảm ơn bạn đã đăng bài này - nó hoạt động như một sự quyến rũ. Có lẽ tôi sẽ cố gắng nhớ những gì tôi đã hy vọng đạt được ở đây, và bắt đầu sử dụng nó.
Peter

5

Quá thêm các bộ đệm chế độ org khác vào danh sách refile, bạn sẽ cần thêm một dòng như sau vào tệp .emacs của bạn. Tôi lấy cái này từ cấu hình của Brent Hansen (Xem tại đây )

; Targets include this file and any file contributing to the agenda - up to 9 levels deep
(setq org-refile-targets (quote ((nil :maxlevel . 9)
                                 (org-agenda-files :maxlevel . 9))))

Chỉ (org-agenda-files :maxlevel .9)thực sự cần thiết, phần khác đặt số lượng mức tối đa để lọc lại.


1
Điều này cho phép tôi thêm một cây vào một cây hiện có trong một tệp mới, nhưng không phải vào một tệp trống, mới được thêm vào mà không có nội dung hiện có. Tôi nghĩ rằng điều này có thể gần như tôi nhận được.
Peter

Bạn cũng có thể thêm (setq org-refile-allow-creating-parent-nodes (quote confirm))như được tham chiếu trong cùng một khối mã từ Bernt (xem liên kết ở trên). Nó sẽ cho phép bạn thêm chúng dưới dạng các nút cha, không chỉ là các tiêu đề phụ. Tôi không chắc chắn nếu bạn có thể thêm một tập tin mới trên đường đi không may.
Jonathan Leech-Pepin

1
Ngay cả với dòng đó, các tệp trong chương trình nghị sự không hiển thị dưới dạng mục tiêu lọc lại. Có vẻ như tôi chỉ có thể lọc lại một tiêu đề hiện có.
Peter

1
Còn với (setq org-refile-use-outline-path 'file)? Điều này có thể làm cho các tập tin như là mục tiêu.
Brady Trainor
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.