Liệt kê các tiêu đề SCHEDULED từ một tệp org được sắp xếp theo ngày


8

Vài tháng trước, tôi đã chuyển đổi tệp init của mình thành tệp org và từ đó tôi đã sử dụng nó như một cách để tổ chức các bài đăng trên blog của mình . Tôi sẽ không đi vào chi tiết quá nhiều ở đây, đủ để nói rằng đây là một org-modebộ đệm lớn , nơi nhiều tiêu đề có một SCHEDULEDngày.

Làm cách nào tôi có thể liệt kê tất cả các tiêu đề SCHEDULED trong tệp này, được sắp xếp theo ngày?

Tất cả những gì tôi quan tâm để xem là ngày , trạng thái việc cần làmtiêu đề . Bất cứ điều gì khác là thừa.
Các yêu cầu quan trọng khác:

  • Do không tiêu đề ommit đánh dấu là DONE.
  • Chỉ liệt kê SCHEDULEDcác mặt hàng. Tôi không muốn thấy các tiêu đề tình cờ có một ngày ( <2014-10-04 Sat>) trong đó.
  • Chỉ sử dụng tập tin này . Không tìm kiếm thông qua tất cả các tập tin chương trình nghị sự của tôi.

Để rõ ràng, lấy các tập tin sau.

* DONE Hi guys
  CLOSED: [2014-10-04 Sat 15:18] SCHEDULED: <2014-10-04 Sat>
* Hello me
** Hello everyone <2014-10-05 Sun>
** TODO The world is at my feet
   SCHEDULED: <2014-10-11 Sat>

Tôi muốn chạy một lệnh sẽ hiển thị một danh sách như thế này:

<2014-10-04 Sat> DONE Hi guys
<2014-10-11 Sat> TODO The world is at my feet

Tất nhiên, tôi không kén chọn định dạng. Điều quan trọng là để thông tin này được hiển thị một cách thuận tiện.


Ruột của tôi nói với tôi điều này có liên quan org-agenda, nhưng tôi không biết làm thế nào để đến đó.

Câu trả lời:


8

Đây là một cách để làm điều đó bằng cách sử dụng org-agenda. Bạn có thể viết một lệnh chương trình nghị sự tùy chỉnh như bên dưới

(setq org-agenda-custom-commands
  '(("i" "Only scheduled entries in init.org sorted by time" agenda ""
     ((org-agenda-files '("~/.emacs.d/init.org"))
      (org-agenda-entry-types '(:scheduled))
      (org-agenda-start-day "2014-01-01")
      (org-agenda-span 'year)
      (org-agenda-include-diary nil)
      (org-agenda-show-all-dates nil))))) 

Hầu hết các cấu hình đang xảy ra settingsmột phần của lệnh tùy chỉnh (Tôi là người bỏ qua phần giải thích về định dạng org-agenda-custom-commandscho ngắn gọn, xem C-hvorg-agenda-custom-Command RET). Sau đây là giải thích ngắn gọn về từng cài đặt được sử dụng

1) org-agenda-filesđược đặt thành tệp init để chế độ org không tìm kiếm tất cả các tệp chương trình nghị sự trong khi xây dựng chương trình nghị sự cụ thể này.

2) org-agenda-entry-typesđược đặt thành ': lên lịch' để giới hạn nó chỉ ở các mục được lên lịch.

3) Là org-agenda-start-dayngày mà bạn muốn các mục được liệt kê trở đi, tôi đã đặt nó cho năm nay bắt đầu bạn có thể muốn đặt thành ngày của bài viết đầu tiên của bạn.

4) org-agenda-spancho biết số ngày được đưa vào chế độ xem chương trình nghị sự. org-agenda-include-diaryđược đặt thành không để tránh có các mục nhật ký trong chế độ xem chương trình nghị sự.

5) Cuối cùng ngày trống được ẩn bằng cách đặt org-agenda-show-all-datesthành không.

Bây giờ khi bạn chạy lệnh org-agendatrong menu điều phối, bạn sẽ nhận được tùy chọn 'i' mà bạn có thể chọn để có được chế độ xem mong muốn.

Câu trả lời cũ

Sử dụng lệnh org-occurtừ chuỗi

(org-xảy ra REGEXP & CALLBACK tùy chọn KEEP-PREVIOUS)

Tạo một cây nhỏ gọn hiển thị tất cả các kết quả khớp của REGEXP. Cây sẽ hiển thị các dòng trong đó biểu thức chính quy phù hợp và tất cả các tiêu đề cao hơn trên trận đấu.

Đây là một cách khác để làm điều đó. Sử dụng xảy ra với một đối số tiền tố. Từ chuỗi doc của lệnh.

(xảy ra REGEXP & NLINES tùy chọn)

Hiển thị tất cả các dòng trong bộ đệm hiện tại có chứa kết quả khớp với REGEXP. Nếu một trận đấu trải rộng trên nhiều dòng, tất cả các dòng đó sẽ được hiển thị.

Mỗi dòng được hiển thị với các dòng NLINES trước và sau, hoặc -NLINE trước nếu NLINES âm.

Vì vậy, việc C-u-1M-xxảy ra RETSCHEDULED RETsẽ cung cấp cho bạn những gì bạn muốn

Tôi không chắc chắn làm thế nào để sắp xếp các tiêu đề khó khăn.


Hoàn hảo, tôi biết chương trình nghị sự org phải có một giải pháp.
Malabarba
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.