Emacs

工具 / 编辑器

本地源文件:docs/tools__editor__emacs.md

Emacs

本页面为 Emacs 的入门教程.

15 分钟入门 Emacs.

简介

Emacs 是一款非常容易上手的编辑器,只需要简短的几行配置就能使用,但是想要非常熟练地使用 Emacs 进行各项工作还是需要一定的时间.

作为入门教程,这里仅介绍 Emacs 的基本功能,以及较方便地用 Emacs 编写、调试代码的方法.

入门

命令

命令在 Emacs 中有很大的作用.

使用 Application 键1(Windows 系统下 Emacs 未指定这个键,需要手动设置)或者快捷键 M-x(Alt+x)可以打开命令输入,输入完按下回车可以执行命令.

通常使用 es 或者 eshell 命令来打开 Eshell(类似一个终端).

输入命令通常可以用快捷键代替.

缓冲 (buffer)

缓冲即打开的文件和进程,在不保存的情况下,在缓冲中修改并不会修改到文件.

在缓冲区的底部点击缓冲的名字或者使用快捷键可以切换缓冲.

编译、调试和运行

编译和调试功能的入口在顶部菜单栏的 Tools 下拉栏.使用者也可以通过命令或者自定义快捷键使用编译和调试功能.

可以使用终端或 Eshell 运行程序.

按下 Tools 中的调试 (gud-gdb) 后,输入程序名(一般会自动输好,但如果中途将程序另存为或者打开了两个需要调试的程序,自动输好的文件名可能会有误 )即可开始调试.

分屏

这个功能能让使用者同时查看各个缓冲的内容,而不需要来回切换缓冲,方便测试、调试代码.

分屏功能可以同时显示多个窗口,用鼠标拖动窗口的边缘可以缩放窗口.

几个快捷键:

  • 删除分屏 "C-x 0":将这个分屏删去
  • 横向分屏 "C-x 3":将这个分屏横向分成两半
  • 纵向分屏 "C-x 2":将这个分屏纵向分成两半

推荐的窗口布局为将窗口分为四块:先横向分,调整一块的宽度约为 ¾ 屏,作为编辑窗口.将另一块横向分,一块作为调试和编译信息显示的窗口,另一块再纵向分,一块打开输入文件,一块打开输出文件.

快捷键

Emacs 拥有极为丰富的快捷键,可以大幅提高工作的效率.使用者可以在配置中自定义快捷键或者设置快捷键的映射.

由于快捷键过多,所以 Emacs 快捷键的使用与操作系统不同.

为了方便描述,做如下约定:

字符键位
CCtrl
MAlt
任意键位

一般有以下三种:

  • F?ESC:直接按下对应的功能键.
  • M-?C-?C-M-?:按下Alt或者Ctrl的同时按下 ?
  • ? ?:先按下第一个 ? 代表的键,松开再按下第二个 ? 代表的键.

下面是一些常用的快捷键:

  • C-x h:全选
  • C-x leftC-x right:切换到上/下一个缓冲
  • C-x d:打开一个目录
  • C-x C-f:打开一个文件(如果不存在文件则新建文件)

个性化

刚安装好的 Emacs 外观难看且不好使用,因此需要对其进行个性化设置.

由于配置不好记,所以部分可以直接设置的部分建议不要记配置.

直接设置

  • Options:Highlight Matching Parentheses 高亮匹配括号
  • Options:Blink Cursor 设置光标闪烁
  • Options Show/Hide:Tool Bar 显示/不显示工具栏(默认显示,建议不显示)
  • Options:Use CUA Keys 勾选后可以使用 Ctrl + C,Ctrl + V 等快捷键进行复制粘贴
  • Options Customize-Emacs:Custom Theme 选择配色方案,选择完后需要点击保存
  • Options:Save Options 保存配置

配置

在 home 目录下显示隐藏文件(Windows 系统在 用户目录AppData\Roaming 目录下),".emacs" 就是配置文件(如果没有说明之前没保存),打开修改即可.如果 Emacs 已打开,则需要重启 Emacs,配置才能生效.

考场推荐的配置如下.

---|---

完整配置

---|---

拓展阅读

要以终端模式启动 Emacs,在启动时添加参数 -nw.Emacs 有多种变体,如采用 native-comp 来减少延迟的 GCC Emacs 及其纯 GTK 版本变体、针对 macOS 优化的 Emacs Macport.

Emacs 有中心化的软件仓库,配置后可通过 M-x package-install 来安装插件.使用 镜像站 可以加快下载速度.

Emacs 可以使用语言服务器(Language Server Protocol)来提高编辑体验,目前推荐的 C++ 后端是 Clangd.前端可以采用 EglotEmacs LSP,参阅 此条目 可能对选择前端有所帮助.

拓展名为 .org 的 Org Mode 文档可以通过 Pandoc 转换为 Markdown 文档.

参考资料与注释

  1. 该键的作用是调出鼠标右键菜单,一般为右Ctrl左边的第一个键. ↩
本页面最近更新: 2026/1/7 08:56:54,更新历史 发现错误?想一起完善?在 GitHub 上编辑此页! 本页面贡献者:akakw1, Ir1d, NachtgeistW, mgt, ouuan, Dong Tsing-hsuen, ksyx, partychicken, Xeonacid, c-forrest, Enter-tainer, isdanni, Konano, Marcythm, PParticle, sshwy, Tiphereth-A 本页面的全部内容在CC BY-SA 4.0SATA 协议之条款下提供,附加条款亦可能应用