Bagaimana cara mempercepat pembuatan agenda mode-org

11

Dibutuhkan beberapa detik untuk Emacs org-mode untuk menghasilkan agenda saya. Bagaimana saya bisa membuatnya lebih cepat? Saya sudah menggunakan file arsip, dan saya memiliki kurang dari 30 .orgfile, semuanya cukup pendek.

Keluaran profiler parsial dari org-agendaperintah:

+ ...                                                              93  50%
- command-execute                                                  90  49%
 - call-interactively                                              85  46%
  - org-agenda                                                     80  43%
   - byte-code                                                     80  43%
    - call-interactively                                           79  43%
     - org-agenda-list                                             79  43%
      - byte-code                                                  79  43%
       - org-agenda-prepare                                        68  37%
        - org-agenda-prepare-buffers                               67  36%
         - byte-code                                               67  36%
          - org-get-agenda-file-buffer                             67  36%
           - find-file-noselect                                    67  36%
            - find-file-noselect-1                                 67  36%
             - after-find-file                                     66  36%
              + run-hooks                                          35  19%
              + normal-mode                                        30  16%
              + auto-save-mode                                      1   0%
             + normal-backup-enable-predicate                       1   0%
        + org-agenda-files                                          1   0%
       + byte-code                                                 10   5%
         org-days-to-iso-week                                       1   0%
    + org-agenda-get-restriction-and-command                        1   0%   
  + byte-code                                                       4   2%   
  + minibuffer-complete                                             1   0%
Matthew Piziak
sumber
Sepertinya mode org menghabiskan banyak waktu membuka file. Anda mungkin melihat peningkatan jika Anda hanya membuat buffer ini selalu terbuka.
Malabarba

Jawaban:

9

Saya telah membuat solusi ini, yang membuat buffer agenda setiap kali Emacs menganggur selama lebih dari 5 detik. Kali berikutnya perintah agenda dijalankan, pembuatan membutuhkan waktu kurang dari satu detik, karena buffer org sudah dimuat.

(run-with-idle-timer 5 nil (lambda () (org-agenda-list) (delete-window)))
Matthew Piziak
sumber
6

Tidak cukup jawaban untuk pertanyaan Anda, tetapi pertimbangkan (setq org-agenda-sticky t). Ini membuat qperintah mengubur buffer agenda ketika Anda selesai dengan itu, daripada menutupnya.

Hasil dari ini adalah bahwa agenda akan muncul kembali segera ketika Anda selanjutnya memintanya, tetapi itu tidak akan diperbarui sejak terakhir kali Anda melihatnya. Jika Anda ingin itu diperbarui, Anda selalu dapat menekan gdalam agenda untuk membangunnya kembali dengan benar.

Stuart Hickinbottom
sumber