Як прискорити генерацію порядку денного в режимі org


11

Для того, щоб створити мій порядок денний, в режимі Emacs потрібно кілька секунд. Як я можу зробити це швидше? Я вже використовую архівні файли, і у мене менше 30 .orgфайлів, усі вони досить короткі.

Частковий вихід профілю org-agendaкоманди:

+ ...                                                              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%

Здається, що режим org витрачає багато часу на відкриття файлів. Ви можете побачити вдосконалення, якщо просто тримати ці буфери завжди відкритими.
Малабарба

Відповіді:


9

Я створив це рішення, яке попередньо генерує буфер порядку денного, коли Emacs не працює більше 5 секунд. Наступного разу, коли виконується команда порядку денного, генерація займає менше секунди, оскільки буфери org вже завантажені.

(run-with-idle-timer 5 nil (lambda () (org-agenda-list) (delete-window)))

6

Не зовсім відповідь на ваше запитання, але врахуйте (setq org-agenda-sticky t). Це змушує qкоманду закопувати буфер порядку денного, коли ви закінчили її, а не закривати.

Результатом цього є те, що порядок денний з’явиться відразу ж, коли ви наступного запитуєте, але він не буде оновлений з моменту останнього його побачення. Якщо ви хочете, щоб він був оновлений, ви завжди можете натиснути gна порядок денний, щоб відновити його належним чином.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.