我使用的是自定义Org-mode代码仓库的版本。 在使用ESUP检测Emacs启动时间后,发现org-mode的加载占用了超多时间。 不知道各位有没有好的解决办法?
加载方式如下:
(if (not (file-exists-p "~/Code/Emacs/org-mode/lisp/"))
(use-package org
:pin org
:ensure t
:ensure org-plus-contrib
:mode (("\\.org\\'" . org-mode)))
;; disable Emacs built-in Org Mode
(delete (format "/usr/local/share/emacs/%s/lisp/org" emacs-version) load-path)
(delete "/usr/share/emacs/site-lisp/org/" load-path)
(use-package org
:pin manual
:load-path "~/Code/Emacs/org-mode/lisp/"
:defer t
:mode (("\\.org\\'" . org-mode))
;; load org before org-mode init files settings.
:init (require 'org)
;; add source code version Org-mode Info into Emacs.
(if (file-exists-p "~/Code/Emacs/org-mode/doc/org")
(with-eval-after-load 'info
(add-to-list 'Info-directory-list "~/Code/Emacs/org-mode/doc/")
(info-initialize)))
(use-package org-plus-contrib
:pin manual
:load-path "~/Code/Emacs/org-mode/contrib/lisp"
:no-require t)))
以下是我使用 ESUP 检测加载包的占用时间输出内容:
Total User Startup Time: 39.555sec Total Number of GC Pauses: 19 Total GC Time: 0.584sec
init-package.el:67 6.642sec 16%
(if (not (file-exists-p "~/Code/Emacs/org-mode/lisp/"))
(use-package org
:pin org
:ensure t
:ensure org-plus-contrib
:mode (("\\.org\\'" . org-mode)))
;; disable Emacs built-in Org Mode
(delete (format "/usr/local/share/emacs/%s/lisp/org" emacs-version) load-path)
(delete "/usr/share/emacs/site-lisp/org/" load-path)
(use-package org
:pin manual
:load-path "~/Code/Emacs/org-mode/lisp/"
:defer t
:mode (("\\.org\\'" . org-mode))
;; load org before org-mode init files settings.
:init (require 'org)
;; add source code version Org-mode Info into Emacs.
(if (file-exists-p "~/Code/Emacs/org-mode/doc/org")
(with-eval-after-load 'info
(add-to-list 'Info-directory-list "~/Code/Emacs/org-mode/doc/")
(info-initialize)))
(use-package org-plus-contrib
:pin manual
:load-path "~/Code/Emacs/org-mode/contrib/lisp"
:no-require t)))
init-prog-lang-clojure.el:433 5.663sec 14%
(use-package clomacs
:ensure t)
init-org-mode.el:25 2.450sec 6%
(require 'init-org-hyperlink)
init-org-mode.el:36 2.178sec 5%
(require 'init-org-agenda)
init-package.el:42 1.728sec 4%
(package-initialize)
init-org-mode.el:32 1.562sec 3%
(require 'init-org-babel)
init-prog-project.el:16 1.419sec 3%
(use-package projectile
:ensure t
:defer t
:delight projectile-mode
:commands (projectile-mode)
:bind-keymap ("C-c p" . projectile-command-map)
:custom ((projectile-completion-system 'ivy)
(projectile-switch-project-action #'projectile-commander)
(projectile-use-git-grep t)
(projectile-create-missing-test-files t))
:init (projectile-global-mode 1)
(add-to-list 'display-buffer-alist '("^\\*Projectile Commander Help\\*" . (display-buffer-below-selected))))
init-emacs-pdf.el:102 1.141sec 2%
(use-package org-pdftools
:ensure t
:defer t
:init (org-pdftools-setup-link))
init-emacs-pdf.el:81 0.942sec 2%
(use-package saveplace-pdf-view
:ensure t
:demand t
:init (save-place-mode 1))
init-org-mode.el:33 0.896sec 2%
(require 'init-org-latex)
init-org-mode.el:44 0.840sec 2%
(require 'init-org-protocol)
init-emacs-buffer.el:25 0.691sec 1%
(use-package all-the-icons-ibuffer
:ensure t
:init (all-the-icons-ibuffer-mode))
init-tool-dictionary.el:116 0.499sec 1%
(use-package baidu-translate
:ensure t
:defer t
:custom ((baidu-translate-appid (my/json-read-value my/account-file 'baidu-translate-appid))
(baidu-translate-security (my/json-read-value my/account-file 'baidu-translate-security)))
:commands (baidu-translate-zh-mark baidu-translate-zh-whole-buffer)
:init (add-to-list 'display-buffer-alist '("^\\*baidu-translate\\*" . (display-buffer-below-selected))))
init-org-mode.el:49 0.475sec 1%
(require 'init-org-contacts)
init-tool-irc.el:11 0.397sec 1%
(use-package circe
:ensure t
:defer t
:commands (circe)
:custom ((circe-default-nick "stardiviner")
(circe-network-options `(("Freenode"
:user "stardiviner"
:pass ,(my/json-read-value my/account-file 'irc)
:use-tls t
:channels ("#emacs"))))
(circe-channels '("#emacs"))
(circe-reduce-lurker-spam t)
(circe-format-say "{nick:-10s} {body}") ; align nick names and messages.
;; spelling checking
(lui-flyspell-p t)
(lui-flyspell-alist '(("#hamburg" "german8") (".*" "american"))))
:config
(define-key circe-mode-map (kbd "C-c SPC") 'tracking-next-buffer)
;; words completion
(defun my/circe-company-setup ()
(my-company-add-backend-locally 'company-ispell))
(add-hook 'circe-channel-mode-hook #'my/circe-company-setup)
;; auto use paste service for long single line.
;; (require 'lui-autopaste)
;; (add-hook 'circe-channel-mode-hook 'enable-lui-autopaste)
;; Logging
(require 'lui-logging)
(enable-lui-logging-globally)
;; track bar
(enable-lui-track-bar))
init-tool-irc.el:11 0.397sec 1%
(use-package circe
:ensure t
:defer t
:commands (circe)
:custom ((circe-default-nick "stardiviner")
(circe-network-options `(("Freenode"
:user "stardiviner"
:pass ,(my/json-read-value my/account-file 'irc)
:use-tls t
:channels ("#emacs"))))
(circe-channels '("#emacs"))
(circe-reduce-lurker-spam t)
(circe-format-say "{nick:-10s} {body}") ; align nick names and messages.
;; spelling checking
(lui-flyspell-p t)
(lui-flyspell-alist '(("#hamburg" "german8") (".*" "american"))))
:config
(define-key circe-mode-map (kbd "C-c SPC") 'tracking-next-buffer)
;; words completion
(defun my/circe-company-setup ()
(my-company-add-backend-locally 'company-ispell))
(add-hook 'circe-channel-mode-hook #'my/circe-company-setup)
;; auto use paste service for long single line.
;; (require 'lui-autopaste)
;; (add-hook 'circe-channel-mode-hook 'enable-lui-autopaste)
;; Logging
(require 'lui-logging)
(enable-lui-logging-globally)
;; track bar
(enable-lui-track-bar))
init-org-mode.el:39 0.348sec 0%
(if (and (file-exists-p "~/org-publish/")
(file-exists-p "~/Org/Website/"))
(require 'init-org-publish))
init-prog-vcs.el:35 0.275sec 0%
(require 'init-prog-vcs-changelog)
init-package.el:56 0.271sec 0%
(eval-when-compile
(require 'use-package))
init-prog-build-system.el:14 0.269sec 0%
(require 'init-cmake)
init-package.el:114 0.252sec 0%
(use-package quelpa-use-package
:ensure t
:demand t
:commands (quelpa-upgrade quelpa-upgrade-all quelpa-self-upgrade)
:custom ((quelpa-checkout-melpa-p nil)
(quelpa-update-melpa-p nil)))
init-emacs-search.el:22 0.222sec 0%
(require 'init-emacs-search-engine)
init-org-mode.el:43 0.201sec 0%
(require 'init-org-attach)
init-prog-vcs.el:29 0.199sec 0%
(require 'init-prog-vcs-git)
init-DevOps.el:21 0.190sec 0%
(require 'init-container)
init-DevOps.el:21 0.190sec 0%
(require 'init-container)
init-org-mode.el:37 0.184sec 0%
(require 'init-org-project-management)
init-org-mode.el:27 0.184sec 0%
(require 'init-org-todo)
init-emacs-edit.el:10 0.179sec 0%
(require 'init-emacs-kill-ring)
init-emacs-theme.el:89 0.179sec 0%
(use-package one-themes
;; :quelpa (one-themes :fetcher github :repo "stardiviner/emacs-one-themes")
:load-path "~/Code/Emacs/one-themes"
:config (load-theme 'one-dark t))