EMACS TIPS

Table of Contents

查看字体

(face-attribute 'default :font)

在 scratch 中运行这条命令。

或者在 org-mode 中 C-c C-c

判断系统

(when (eq system-type 'darwin)
  (require 'init-osx))

指定加载配置文件

emacs -l your_file

不加载任何文件:

emacs --no-init-file --no-site-file

禁用触摸板与鼠标

;; 第一种方案(推荐)
;; 安装 disable-mouse packages
(global-disable-mouse-mode)
(define-minor-mode disable-mouse-mode
  "A minor-mode that disables all mouse keybinds."
  :global t
  :lighter " 🐭"
  :keymap (make-sparse-keymap))

(dolist (type '(mouse down-mouse drag-mouse
                      double-mouse triple-mouse))
  (dolist (prefix '("" C- M- S- M-S- C-M- C-S- C-M-S-))
    ;; Yes, I actually HAD to go up to 7 here.
    (dotimes (n 7)
      (let ((k (format "%s%s-%s" prefix type n)))
        (define-key disable-mouse-mode-map
          (vector (intern k)) #'ignore)))))

(disable-mouse-mode 1)
;; 第三种方案(在 spacemacs 中可用)
(xterm-mouse-mode -1 )

memory-report

查看内存占用情况。

after-init-hook

(global-hl-todo-mode)
(add-hook 'after-init-hook 'global-hl-todo-mode)

两行代码的目的是相同的,都是确保 hl-todo 模式在 Emacs 启动后被启用。第二种形式更加灵活,因为它使用了钩子,可以确保 global-hl-todo-mode 在初始化完成后调用,而不是在 Emacs 启动时立即调用。这可能对于一些需要等到初始化完成后才能生效的模式或配置更有用。

但是如果使用 run-with-idle-timer 函数,那么 after-init-hook 就会出问题。

ESC

ESC C-f
C-M-f
ESC f
M-f

查看内置包

(describe-variable 'package--builtins)