Jak przyspieszyć generowanie agendy w trybie org

11

Tryb org Emacsa zajmuje kilka sekund, aby wygenerować mój plan. Jak mogę to zrobić szybciej? Korzystam już z plików archiwalnych i mam mniej niż 30 .orgplików, wszystkie dość krótkie.

Częściowe wyjście profilera org-agendapolecenia:

+ ...                                                              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
źródło
Wygląda na to, że tryb org marnuje dużo czasu na otwieranie plików. Możesz zobaczyć ulepszenia, jeśli tylko utrzymasz te bufory zawsze otwarte.
Malabarba

Odpowiedzi:

9

Stworzyłem to obejście, które generuje bufor programu, gdy Emacs jest bezczynny przez ponad 5 sekund. Przy następnym uruchomieniu polecenia programu generowanie zajmuje mniej niż sekundę, ponieważ bufory organizacji zostały już załadowane.

(run-with-idle-timer 5 nil (lambda () (org-agenda-list) (delete-window)))
Matthew Piziak
źródło
6

Nie do końca odpowiedź na twoje pytanie, ale zastanów się (setq org-agenda-sticky t). To powoduje, że qpolecenie zakopuje bufor programu po zakończeniu, zamiast go zamykać.

Wynika to z tego, że agenda pojawi się ponownie natychmiast, gdy poprosisz o nią ponownie, ale nie zostanie zaktualizowana od czasu jej ostatniego zobaczenia. Jeśli chcesz go zaktualizować, zawsze możesz nacisnąć gw porządku obrad, aby go poprawnie odbudować.

Stuart Hickinbottom
źródło