面向产品经理的Emacs教程:6. 改变Emacs的一些编辑行为

· 1035字 · 3分钟

1 课程回顾 🔗

在过去的五节课里,我们简单了解了什么是Emacs,什么是Org mode,如何通过Org mode来管理配置文件,配置包管理器,以及改变了一下Emacs的样貌。

今天,我们学习改变Emacs的一些编辑行为。

2 备份设置 🔗

在我们的配置文件目录,我们经常能看到以波浪线结尾的文件,如下图里的 init.el~ ,这个是Emacs的自动备份机制。

/Users/randolph/.emacs.d
├── README.org
├── early-init.el
├── elpa
│   ├── archives
│   ├── compat-28.1.2.2
│   ├── compat-28.1.2.2.signed
│   ├── dash-20221013.836
│   ├── diminish-20220909.847
│   ├── doom-modeline-20221217.1212
│   ├── ef-themes-0.10.0
│   ├── ef-themes-0.10.0.signed
│   ├── f-20221229.1838
│   ├── fontaine-0.4.1
│   ├── fontaine-0.4.1.signed
│   ├── gnupg
│   ├── keycast-20221205.1138
│   ├── minions-20221218.1256
│   ├── quelpa-20221220.1136
│   ├── quelpa-use-package-20201022.746
│   ├── s-20220902.1511
│   └── shrink-path-20190208.1335
├── emacs-config-l4.org
├── emacs-config-l5.org
├── emacs-config.org
├── init.el
├── init.el~
└── lisp
    └── init-ui.el

18 directories, 11 files

这里,我们不使用这个特性,也让目录变得更加干净一些。

(setq make-backup-files nil)                                  ; 不自动备份
(setq auto-save-default nil)                                  ; 不使用Emacs自带的自动保存

3 解除一些不常用的快捷键 🔗

将一些不常用的快捷键解除,防止误操作。

;; 解除不常用的快捷键定义
(global-set-key (kbd "C-z") nil)
(global-set-key (kbd "s-q") nil)
(global-set-key (kbd "M-z") nil)
(global-set-key (kbd "M-m") nil)
(global-set-key (kbd "C-x C-z") nil)
(global-set-key [mouse-2] nil)

4 delsel选择文本输入时直接替换 🔗

Emacs默认选择文本后直接输入,是不会直接删除所选择的文本进行替换的。通过内置的 delsel 插件来实现这个行为。

;; Directly modify when selecting text
(use-package delsel
  :ensure nil
  :hook (after-init . delete-selection-mode))

5 对Org文件进行自动tangle 🔗

我们通过Org文件来管理我们的配置文件,当我们添加了一些配置的代码块后,每次都要手动运行 M-x org-babel-tangle 来让代码块的内容自动保存到设置的文件里去,很不方便。那有什么办法能在我们保存文件的时候,自动tangle写入到我们设定好的文件里呢?

答案当然是有的,我们可以通过 org-auto-tangle 插件来实现:

(use-package org-auto-tangle
  :ensure t
  :hook (org-mode . org-auto-tangle-mode)
  :config
  (setq org-auto-tangle-default t)
  )

6 自动重载设置 🔗

当我们的文件发生了改变后,我们希望Emacs里打开的永远是最新的文件,这个时候,我们需要对自动重载进行设置,让我们的Emacs在文件发生改变的时候自动重载文件。

(use-package autorevert
  :ensure nil
  :hook (after-init . global-auto-revert-mode)
  :bind ("s-u" . revert-buffer)
  :custom
  (auto-revert-interval 10)
  (auto-revert-avoid-polling t)
  (auto-revert-verbose nil)
  (auto-revert-remote-files t)
  (auto-revert-check-vc-info t)
  (global-auto-revert-non-file-buffers t))

7 结语 🔗

经过了上面的设置,我们修改了Emacs的一些默认编辑行为,这会让Emacs的使用变得更加顺手。当然,这一切都是高度自由的,你可以不同意我的设置,你可以有自己的习惯和喜好,Emacs可以让你完全按照自己的喜好来定制,我想这就是Emacs的巨大魅力之一吧。

经过了今天的课程,你的Emacs配置文件大概会像下面这样:第6课后的配置文件

你也可以在 这里 查看最新的配置文件。