目录
- 1 课程回顾
- 2 备份设置
- 3 解除一些不常用的快捷键
- 4 delsel选择文本输入时直接替换
- 5 对Org文件进行自动tangle
- 6 自动重载设置
- 7 结语
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课后的配置文件
你也可以在 这里 查看最新的配置文件。