优化emacs的方法总结(新手向)

<2019-09-14>

开启debug

(setq debug-on-error t)

调整启动时垃圾回收的阀值

(setq gc-cons-threshold 402653184
      gc-cons-percentage 0.6)
(add-hook 'emacs-startup-hook
          (lambda ()
            (setq gc-cons-threshold 16777216
                  gc-cons-percentage 0.1
                  file-name-handler-alist nil)))

看看启动期间都干了什么

https://github.com/jschaf/esup
M-x package-install RET esup RET
M-x esup RET
稍等一会儿会显示详细的信息

使用use-package来自动加载

https://github.com/jwiegley/use-package

(unless (or package-archive-contents (package-installed-p 'use-package))
  (package-refresh-contents)
  (package-install 'use-package))

有些包特别有用,你希望可以很快就能使用它们,但是它们本身在Emacs启动过程中又不是必须的,可以使用defer来延迟加载, 例如

(use-package recentf
  :defer 1) ;;空闲一秒后加载

使用mode建立内部的延迟绑定

(use-package rust-mode
  :mode "\\.rs\\") ;;打开后缀名为rs的文件后加载

按下相应快捷键加载可以使用bind

(use-package magit
  :bind ("C-x g" . magit-status)) ;;按下相应快捷键后

禁用package-initialize 手动去填充path

这个path就是第一次安装的时候把所有的path缓存起来 ,第二次就跳过一些初始化的设置 ,直接加载 ,Emacs启动时间不少都花费在package-initialize上
可以看看这来两个
https://github.com/honmaple/emacs-maple-package
https://github.com/hlissner/doom-emacs

定位卡顿问题

例如我在编辑某个文件的时候特别卡,想要快速定位问题可以
M-x profiler-start
之后emacs会提示你检测内存还是cup ,选择好后可以执行一遍之前感到卡顿的那个操作 ,之后可以
M-x profiler-report
emacs 会显示出内存和cpu的统计数据 ,然后调整占用cpu和内存占用比较高的就行

TODO 加载顺序

可以把theme之类的放到前面加载 ,可以造成加载速度变快的错觉 (大雾
关闭工具栏 ,滚动条 ,菜单栏也会影响一点启动速度 ,这是因为它们会先加载出来然后再关闭 …

(tool-bar-mode 0)               ;;关闭工具栏
(scroll-bar-mode 0)             ;;关闭滚动条
(menu-bar-mode 0)               ;;菜单栏

emacs27 多了个xx.el 好像可以解决这个问题 ,待补充

emacs c/s 模式

启动emacs daemon

systemctl --user enable emacs.service

运行 emacsclient -n -c 就能连接上emacs daemon (不太喜欢这种 …)

Copyright © 克里斯蒂娜 | 2019 Emacs 26.x Org-mode 9.x