添加 snippet
-
M-x
然后输入yas-new-snippet
回车RET
,会出现一个新的 buffer# -*- mode: snippet -*- # name: # key: # --
-
在出现的 buffer 中填写相应的数据
# -*- mode: snippet -*- # name: vard # key: vard # -- echo '<pre>'; var_dump($0); die;
-
c-x c-s
保存可以保存到两个地方:
- ~/.emacs.d/private/snippets/modename-mode/
- ~/.spacemacs.d/snippets/modename-mode/
-
代码片段中的
$0
表示代码片段填充之后光标最后停的地方,$1 $2 $3...
表示按TAB
之后光标停的地方。这些变量我们叫做tab stop
-
在已存在的代码片段上创建 snippet
helm-yas-create-snippet-on-region
使用 snippet
- 打开一个 buffer
M-/
spacemacs 的TAB
按键被自动补全使用了,所以这里使用了M-/
来触发。- 如果有多个
tab stop
可以使用TAB
进行跳转
与 auto-completion 整合
;; 让 auto-completion 在提示的时候加上 snippets
(setq-default dotspacemacs-configuration-layers
'((auto-completion :variables
auto-completion-enable-snippets-in-popup t)))
因为效率原因,笔者已经放弃 emacs & spacemacs 的折腾之路,请大家也慎重考虑是否要使用 emacs 来作为自己的主编辑器。
参考文献:
[0]:Spacemacs - Adding Custom Snippets to Yasnippet
[1]:Emacs Yasnippet video 视频实战,只有不到 7 分钟的时间,值得一看