Emacs配置记录 2——C/C++环境配置
条评论前言
经过上一篇的简单调教,Emacs已经勉强变成了一个温顺的文本编辑器,但是离写代码这个宏大的目标还是有一段距离的,今天来解决主要问题:代码补全。由于我要写一点简单的C代码,那么重点就先放到C/CPP环境搭建中。
站在巨人的肩膀上,在Emacs中的代码补全使用巨硬的LSP协议。
Spacemacs
经过考虑,我还是决定使用Spacemacs,比起原版Emacs,它更适合新手,也更能快速投入开发。避免配置陷阱,过多把时间花在刀把上。唉,也就是说,昨天大部分都白干了。算了,生命的意义就在于折腾,怕折腾我也不会玩Emacs了。来吧!
先来安装一下Spacemacs。git clone https://github.com/syl20bnr/spacemacs ~/.emacs.d
重启Emacs,让他下载一下自带的包。
上次没清理干净Spacemacs,不知道存在哪的备份还在,算是免去了一些折腾吧。来看看现在的Emacs都配置了什么。
1 | dotspacemacs-configuration-layers |
emmm,还是有点有用的。比如C/C++这里,就启用了LSP。还有一些之前搞的前端配置。就是不知道为啥,JavaScript的补全不太好使。
语法检查
语法检查,选择当前比较成熟的flycheck,在Spacemacs中对应syntax-checking
,在.spacemacs中的dotspacemacs-configuration-layers
写入(configuration-layer/declare-layer 'syntax-checking)
该层会自动集成Flycheck及其常见语言的后端支持。
C/C++要安装clang-tidy
或cppcheck
。
进阶配置
1 | (with-eval-after-load 'flycheck |
.spacemacs 文件基本介绍
.spacemacs 文件一般会自动生成在主目录下,这个文件是配置 Spacemacs 的入口,有关于 Spacemacs 本身的配置基本都能在里面进行修改,用户设置同样在这个文件中修改。
.spacemacs 中,内容一般被分为以下几个部分,每个部分都封装在一个函数中:
dotspacemacs/layers
在这里可以声明一些 layer,以及删除、增添一些包,在这里还可以调整 Spacemacs 加载时的一些行为
dotspacemacs/init
Spacemacs 绝大部分的配置都位于此,你可以在此修改配置中可选的选项,但绝对不能将自己的用户配置代码添加在这里
dotspacemacs/user-init
这里的内容会在 Emacs 启动前开始加载,一般在这里设置你需要使用的 elpa 源,你应该尽量把用户配置放在 dotspacemacs/user-config
中
dotspacemacs/user-config
在这里可以添加你的用户配置代码,你自己的定义的大部分配置一般都在这里完成
dotspacemacs/emacs-custom-settings
Spacemacs 自己生成的配置,同样不建议自己去修改