我如何使用emacs

开篇的题外话

我使用Archlinux作为我日常使用的操作系统之一,最重要的原因是我现在患上了emacs重度依赖,emacs已经是我每天一定会使用的应用程序。(emacs在windows下的体验懂得都懂)

因此,在使用emacs的过程中,由于配置的频繁变化,所需安装的软件包以及插件也跟着变动频繁。所幸我自己的配置逐渐稳定,于是便写一写我在日常中是如何使用emacs的。

我主要用emacs做什么

我见过不少emacser对emacs的用法是all in emacs。但对我而言,听音乐,看web这样的事情,不该由一个文本编辑器来做。我希望我的emacs仍旧是轻量的,并不希望emacs真正的变成一个操作系统。所以,我一定不会去用emacs煮咖啡。

当然,我也有一些除了编辑代码文本以外的事情使用emacs,但往往这些事情在emacs中的的确确更为方便。

下面讲讲我主要使用emacs做什么。

笔记

我是使用emacs记笔记的。主要是使用org-mode + denote的组合。

对我而言,org写起来非常舒适,它本身并不复杂,但org-mode本身又有一定的可定制性,使得写org的过程相比写其他如markdown一类的格式更符合我的习惯。

另外,denote也能满足我在不同文件之间建立连接的需求,denote本身也很轻量,但足够用了。

另外,其实配合org-modern,在emacs中直接阅读org的体验相当的不错,下面附上图。
org-mode
org-mode

看epub

nov-mode + olivetti-mode实际上给人的体验还算不错,当然,存在一些epub打不开的情况,但我个人几乎不会使用pc去看epub,一个本来就不怎么重要的需求,就没必要安装foliate那些东西了,直接用emacs看看挺好。

git

magit的体验很好,从没有考虑过寻找magit的替代品。凡是用得到git的情况我几乎全部交给magit了。

聊天

我使用telega,因为我的电脑上没有tg的客户端,telega几乎挑不出毛病,占用貌似也不大,在emacs上用telega也还算不错。

我的emacs配置需要额外安装的包

字体

如下所示,我的emacs配置需要安装下面这些字体。

1
2
3
4
5
6
(set-face-attribute 'default nil :font (font-spec :family "Maple Mono NF" :size 20 :slant 'italic ))
(set-fontset-font t 'symbol (font-spec :family "Noto Sans Symbols 2"))
(set-fontset-font t 'mathematical (font-spec :family "Noto Sans Math"))
(set-fontset-font t 'emoji (font-spec :family "Noto Color Emoji") nil 'append)
(set-fontset-font t 'han (font-spec :family "LXGW Wenkai"))
(set-fontset-font t 'kana (font-spec :family "Sarasa Gothic J" :weight 'normal :slant 'normal))

td

为了使用telega,需要自行编译安装td

lsp

使用eglot需要安装的lsp,一般根据eglot的提示去装就好,这个倒不需要特别去提。顺便一提,我暂时没有mutiple server的需求,所以对eglot没有特别的配置,也无需安装一些其他的包

apheleia

1
2
3
4
5
6
7
8
9
10
11
12
(use-package apheleia
:diminish
:hook (prog-mode . apheleia-mode)
:config
(setf (alist-get 'prettier apheleia-formatters)
'("prettier" "--stdin-filepath" filepath "--parser" "babel"))
(setf (alist-get 'ruff apheleia-formatters) '("ruff" "format" "--stdin-filename" filepath "-"))

(dolist (mode '(js-ts-mode json-ts-mode typescript-ts-mode web-mode))
(setf (alist-get mode apheleia-mode-alist) 'prettier))
(dolist (mode '(python-mode python-ts-mode))
(setf (alist-get mode apheleia-mode-alist) 'ruff)))

在emacs中使用apheleia,我安装了ruff以及prettier

igc

如果你想要使用igc分支,你需要先安装libmps,对于archlinux,你可以使用aur。

1
paru -S mps-git

结语

写这篇文章,最重要的目的不是为了让什么人去参考我的使用方式,只是记下自己常用的包,以便需要时安装。当然,如果能够对这篇文章的读者使用emacs有一丁点的启发,也是极好的。


我如何使用emacs
http://blog.meltryalice.ink/posts/20260308210802.html
作者
Meltryalice
发布于
2026年3月8日
许可协议