spacemacs: 安装与配置

我曾经是 vim 的忠实用户。去年开始尝试使用 emacs。即便花了很多时间记忆键位和指令,我在 emacs 上却始终不能达到 vim 的编辑效率。后来,我听说了 evil mode,也就是在 emacs 中使用 vim 键位的模式。把 evil mode 与自动补全、模糊查询等强大功能整合到一起的,是一款名为 spacemacs 的编辑器。在这一系列文章中,我将讲解如何高效地使用 spacemacs —— vim 和 emacs 的集大成者。


系列目录


安装 spacemacs

安装 spacemacs 的难度取决于 emacs 的版本。如果版本(emacs --version)不低于 24.4,安装过程会简单得令人发指:

1
git clone https://github.com/syl20bnr/spacemacs ~/.emacs.d

否则,请先花上看一篇公众号文章的时间从源代码安装新版的 emacs。不用担心,这个过程没有想象中那么可怕。下面是我在 ubuntu 上安装 emacs 25.1 使用的指令。

1
2
3
4
5
6
7
8
9
10
11
12
13
sudo apt-get install -y autoconf automake libtool texinfo build-essential \
xorg-dev libgtk2.0-dev libjpeg-dev libncurses5-dev libdbus-1-dev \
libgif-dev libtiff-dev libm17n-dev libpng12-dev librsvg2-dev libotf-dev\
libgnutls-dev libxml2-dev

wget http://ftp.gnu.org/gnu/emacs/emacs-25.1.tar.gz

tar xvf emacs-25.1.tar.gz

cd emacs-25.1
./configure --with-x-toolkit=lucid --with-modules
make bootstrap
sudo make install

为了让 spacemacs 正常工作,你必须清理掉 ~/.emacs 文件,并且拥有 ~/.emacs.d 的所有权。


安装字体

spacemacs 默认使用 Source Code Pro 字体。在各类等间距字体中,Source Code Pro 字形优雅,辨识度很高,适合开发者使用。在 macOS 和 windows 平台下,使用系统工具导入下载的字体文件即可。考虑到 Linux 的复杂性,我给出了 ubuntu 安装该字体的方法。

1
2
3
4
5
6
7
8
wget https://github.com/adobe-fonts/source-code-pro/archive/2.030R-ro/1.050R-it.tar.gz

tar xvf 1.050R-it.tar.gz

sudo mkdir -p /usr/share/fonts/opentype
sudo cp -r source-code-pro-2.030R-ro-1.050R-it/OTF/* /usr/share/fonts/opentype

sudo fc-cache -f -v


安装 layer 依赖

spacemacs 中相关功能的插件/扩展包以 layer 的形式聚合在一起。有不少 layer 的功能无法使用 Emacs Lisp 脚本实现,它们依赖于其他的软件包才能正常工作。以 Python layer 为例,其文档(位于~/.emacs.d/layers/+lang/python/README.org)明确指出了它的外部依赖。比如,获取自动补全功能,需要 anaconda-mode

1
pip install --upgrade "jedi>=0.9.0" "json-rpc>=1.8.1" "service_factory>=0.1.5"

请跟据你开启的 layer 自行补充所需的外部依赖,我在这里就不一一列举了。


配置 spacemacs

首次启动 spacemacs 时,它会从网络下载一系列扩展包,放置于 ~/.emacs.d/elpa 文件夹下。同时,它会提供几个简单的选项,用于初始化 ~/.spacemacs 配置文件。这个配置文件有几个地方值得注意。

dotspacemacs-configuration-layers 是启用的 layer 列表。初始列举的 layer 大多被双引号注释掉了,你可以移除注释使用它们,同时自行添加其他的 layer。一定要启用 auto-completionheml,它们是 spacemacs 的灵魂所在。另外可使用 themes-megapack 下载各类皮肤。

dotspacemacs-editing-style 是默认编辑模式。evil mode 对应的值为 'vim。evil mode 的详解请见后续文章。

dotspacemacs-themes 用于设置皮肤。我个人最喜欢farmhouse-dark。想挑皮肤去 这个网站 就好了。

dotspacemacs-maximized-at-startup 在启动时自动最大化窗口。把这个值设置为 t 以获得沉浸式的编辑体验。若想要全屏运行 spacemacs,请改写 dotspacemacs-fullscreen-at-startup

dotspacemacs-line-numbers 设置是否显示行号。nil隐藏,t则显示出来。

dotspacemacs-whitespace-cleanup 删除多余的空白,推荐设置为'trailing

关于 spacemacs 的更多设置有待我进一步挖掘。

如果你只想在终端内运行 spacemacs 而不打开新的窗口,emacs -nw 可以满足你的需求。除了用 unicode 字符代替了精细的图标外,终端版的 spacemacs 与 GUI 版没有本质不同。ssh 和 tmux 的用户这回不会失望了。

咱们下回见!