¿Cómo puedo acelerar la generación de agenda en modo org?


11

Emacs org-mode tarda varios segundos en generar mi agenda. ¿Cómo puedo hacerlo más rápido? Ya estoy usando archivos de almacenamiento, y tengo menos de 30 .orgarchivos, todos ellos razonablemente cortos.

Salida del perfilador parcial del org-agendacomando:

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

Parece que el modo org pierde mucho tiempo abriendo los archivos. Es posible que vea mejoras si mantiene estos buffers siempre abiertos.
Malabarba

Respuestas:


9

He creado esta solución alternativa, que genera un búfer de agenda siempre que Emacs esté inactivo durante más de 5 segundos. La próxima vez que se ejecute el comando de agenda, la generación tarda menos de un segundo, ya que los buffers de la organización ya se han cargado.

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

6

No es exactamente una respuesta a su pregunta, pero considere (setq org-agenda-sticky t). Esto hace que el qcomando entierre el búfer de la agenda cuando haya terminado con él, en lugar de cerrarlo.

El resultado de esto es que la agenda reaparecerá inmediatamente la próxima vez que la solicite, pero no se habrá actualizado desde la última vez que la vio. Si desea actualizarlo, siempre puede presionar gen la agenda para reconstruirlo correctamente.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.