添加 snippet

  1. M-x 然后输入 yas-new-snippet 回车 RET,会出现一个新的 buffer

    1
    2
    3
    4
    # -*- mode: snippet -*-
    # name:
    # key:
    # --
  1. 在出现的 buffer 中填写相应的数据

    1
    2
    3
    4
    5
    6
    7
    # -*- mode: snippet -*-
    # name: vard
    # key: vard
    # --
    echo '<pre>';
    var_dump($0);
    die;
  2. c-x c-s 保存

    可以保存到两个地方:

    • ~/.emacs.d/private/snippets/modename-mode/
    • ~/.spacemacs.d/snippets/modename-mode/
  3. 代码片段中的 $0 表示代码片段填充之后光标最后停的地方,$1 $2 $3... 表示按 TAB 之后光标停的地方。这些变量我们叫做 tab stop

  4. 在已存在的代码片段上创建 snippet helm-yas-create-snippet-on-region

使用 snippet

  1. 打开一个 buffer
  2. M-/ spacemacs 的 TAB 按键被自动补全使用了,所以这里使用了 M-/ 来触发。
  3. 如果有多个 tab stop 可以使用 TAB 进行跳转

与 auto-completion 整合

1
2
3
4
;; 让 auto-completion 在提示的时候加上 snippets
(setq-default dotspacemacs-configuration-layers
'((auto-completion :variables
auto-completion-enable-snippets-in-popup t)))

参考文献:
[0]:Spacemacs - Adding Custom Snippets to Yasnippet
[1]:Emacs Yasnippet video 视频实战,只有不到 7 分钟的时间,值得一看