Dump brain with Emacs

先利其器:Emacs 安装及其黑话

安装、启动、退出

目前(2021-07-29)最新稳定版是 27.2,主线版本 Emacs 28 并且已经合并了 Native Comp,我日常使用的就是编译了 Native Comp 的主线版本。

我们这里选择最新的稳定版本 27.2。

Linux

Linux 平台下对于 CentOS/RHEL/Fedora 和 Debian/Ubuntu 推荐从源码中编译安装:

安装依赖

源码安装

git clone https://git.savannah.gnu.org/git/emacs.git
cd emacs
git tag -l
git checkout emacs-27.2
./autogen.sh
./configure
make -j4 && sudo make install

对于 Archlinux 推荐参考其官方文档对照安装。

macOS

macOS 默认安装了 Emacs,但是版本比较低,建议大家从社区安装最新版。我之前比较常用的是 emacs-mac 这个版本,可以通过 Homebrew 安装:

$ brew tap railwaycat/emacsmacport
$ brew install emacs-mac

然后在终端里通过以下命令打开 Emacs:

$ open -a /usr/local/opt/emacs-mac/Emacs.app/

Windows

推荐使用 WSL,首先初始化 WSL 虚拟机,然后在 Linux 环境下参考 Linux 的安装,接下来可以参考 WSL 运行 Emacs GUI - 知乎 配置运行图像环境2

当然也可以通过 Powershell 和 Chocolatey3 直接安装到 Windows 系统,但是配置 Git 等会稍微复杂:

PS> choco install emacs-full

安装后可以在 Powershell 中启动 Emacs:

PS> emacs

退出 Emacs

快捷键按 C-x C-c (就是按住 Ctrl 不松开继续按 x ,然后再按住 Ctrl 不松开继续按 c ,聪明的你肯定发现只要按住 Ctrl 不松开依次按 xc 键就可以了)。

黑话

Emacs 诞生的时间比较早,有些概念也是很早就确定了,带着时代的气息,可能不是很好理解。所以为了便于大家理解,我们在此提前进行解释,大家遇到不懂的可以随时翻回来查看:

快捷键

黑话 解释
C-c 按住 Ctrl 不松开然后按 c
C-x b 按住 Ctrl 不松开按 x, 然后松开以上按键后再按 b
C-x C-c 4 组合快捷键,你需要先按出 C-x ,然后继续按出 Ctrl-c ,两段快捷键中间可以间隔任意时间
C-g 假如你快捷键按到一半想要放弃,可以通过这个快捷键放弃。(当然不仅是放弃快捷键,很多操作都可以通过这个快捷键终止)
M-x Meta + c ,Meta 键一般意味着 Alt 或者 ESC
s-l Super + l , Super 键现在比较少见,可以通过 C-x @ s 按出 s- 前缀,所以这个完整的快捷键是 C-x @ s l
C-x @ 前缀 可以用这个前缀快捷键按出一些比较奇怪的「修饰键」,比如上面的 Super ,其他还有 Hyper
M-x org-id-get-create RET M-x 会弹出命令输出框,然后输入 org-id-get-create 按回车( RET 表示回车)
C-u 前缀 可以给 M-x 命令传递数字参数,比如禁用某些 minor mode C-u 0 M-x flycheck-mode RET 就是给 flycheck-mode 这个函数传递参数 0

概念

黑话 解释
frame 图形界面的窗口:通过 C-x 5 2 创建一个试试,然后 C-x 5 0 关闭
window 分割面板:通过 C-x 2 水平分割, C-x 3 垂直分割, C-x o 切换面板, C-x 0 关闭当前面板
face 文本显示方式,字体等
fringe 分割面板的边缘
kill 剪切, C-k 剪切光标后面到行尾
kill-ring 剪切板,可以保存多个,可以通过 M-y 选择
mode-line 窗口底部的一个显示状态的横条
minibuffers mode-line 下面的消息回显区,同时某些命令下输入区也会在这

buffer

这个可能和大多数编辑器不太一样,Emacs 突出了 buffer 的语义,从而弱化了编辑文件语义,比如在其他编辑器或者 IDE 你可能是想的切换编辑文件, 但是 Emacs 更突出了是切换到对应的 buffer( C-x b ) 编辑,而后通过 C-x C-s 将 buffer 的内容保存到文件中(如果是生成的 buffer 则会提示选择要保存的文件名)。

同时 Emacs 有很多临时的 buffer 来充当日志的角色,比如默认的 *Messages* (C-x b *Messages* RET) 就是一个只读 buffer 显示一些日志信息,某些操作失败了之后也会保存一些错误消息到指定的 buffer 中,我们只要切换过去就能看到。


  1. Compile Emacs 27 on CentOS 7,23 FEB 2021,JUSTYN ↩︎

  2. 这里有一个完整的教程可以参考:https://github.com/hubisan/emacs-wsl ↩︎

  3. 在 Windows 上安装 GNU Emacs ↩︎

  4. 这是退出 Emacs 的快捷键,非常有用,相信我 ↩︎