Spacemacs 使用小记

安装

Mac 自带的 Emacs 仅为终端版本,我一般会腾出终端窗口另做他用,所以先安装图形界面的 Emacs 。图形界面的版本有很多,比如emacs-plusemacs-mac等,我喜欢 Homebrew 推荐的 cask 版本。安装如下(需要事先安装好 Homebrew ):

# brew 安装 emacs
brew cask install emacs

然后从 GitHub 下载 Spacemacs 的开发版本。如需安装稳定版请 git master 分支。

# 安装 Spacemacs devlop 分支
rm -rf ~/.emacs.d
git clone -b develop https://github.com/syl20bnr/spacemacs ~/.emacs.d

打开新安装的 Emacs,会提示选择 vim 还是 emacs 操作习惯,然后选择插件的默认依赖,选择 spacemacs 就可以。这时会在用户目录生成 .spacemacs配置文件,并开始从 melpa.org 等站点下载依赖包。下载速度会很慢,所以此时强制退出。我们先替换 melpa\org\gnu 为国内源以提高安装速度。

# 清空 elpa 目录
rm -rf ~/.emacs.d/elpa/

# 打开 Spacemacs 配置文件
vim ~/.spacemacs

找到(defun dotspacemacs/user-init ()并在其中添加以下代码:

(setq configuration-layer-elpa-archives
'(("melpa-cn" . "http://mirrors.tuna.tsinghua.edu.cn/elpa/melpa/")
("org-cn" . "http://mirrors.tuna.tsinghua.edu.cn/elpa/org/")
("gnu-cn" . "http://mirrors.tuna.tsinghua.edu.cn/elpa/gnu/")))

保存退出后重启 Emacs 等待安装完成。

配置

为了便于管理自己的配置文件,可以将.spacemacs配置文件改名为init.el放置在.spacemacs.d文件夹中方便上传至 Github ,我的配置文件可以参考这里

打开 Emacs 后,就可以看到 Spacemacs 骚骚的基佬紫了。在 Spacemacs 中修改配置文件可以使用快捷键 SPC f e d ,SPC 指的是空格,是 Spacemacs 默认的 Leader 键。

添加 Layer

Spacemacs 通过组合不同的 Layer 来添加不同的功能。可以在 dotspacemacs-configuration-layers 添加。列出基础 Python 需要的 Layers 供参考:

dotspacemacs-configuration-layers
'(
;; ----------------------------------------------------------------
;; Example of useful layers you may want to use right away.
;; Uncomment some layer names and press `SPC f e R' (Vim style) or
;; `M-m f e R' (Emacs style) to install them.
;; ----------------------------------------------------------------
helm
(python :variables
python-test-runner 'pytest
python-fill-column 79
)
(auto-completion :variables
auto-completion-enable-sort-by-usage t
auto-completion-enable-snippets-in-popup t
)
emacs-lisp
git
markdown
neotree
emoji
syntax-checking
version-control
)

其他设置

可以在用户自定义配置 defun dotspacemacs/user-config () 中设置一些变量,比如 PATHONPATH ,或者通过 (setq custom-file )) 导入自定义的配置文件。参考如下:


(defun dotspacemacs/user-config ()
"Configuration for user code:
This function is called at the very end of Spacemacs startup, after layer
configuration.
Put your configuration code here, except for variables that should be set
before packages are loaded."
(setq neo-theme 'icons)
(setq importmagic-python-interpreter "ipython")
(setq python-shell-interpreter "ipython"
python-shell-interpreter-args "--simple-prompt -i")
)

;; Do not write anything past this comment. This is where Emacs will
;; auto-generate custom variable definitions.
(setq custom-file (expand-file-name "custom.el" dotspacemacs-directory))
(load custom-file 'no-error 'no-message)
(defun dotspacemacs/emacs-custom-settings ()
"Emacs custom settings.
This is an auto-generated function, do not modify its content directly, use
Emacs customize menu instead.
This function is called at the very end of Spacemacs initialization."
)