YASnippet – emacs 的代码片段管理工具

服务器

浏览数:194

2019-10-5

添加 snippet

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

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

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

    可以保存到两个地方:

    • ~/.emacs.d/private/snippets/modename-mode/
    • ~/.spacemacs.d/snippets/modename-mode/
  4. 代码片段中的 $0 表示代码片段填充之后光标最后停的地方,$1 $2 $3... 表示按 TAB 之后光标停的地方。这些变量我们叫做 tab stop
  5. 在已存在的代码片段上创建 snippet helm-yas-create-snippet-on-region

使用 snippet

  1. 打开一个 buffer
  2. M-/ spacemacs 的 TAB 按键被自动补全使用了,所以这里使用了 M-/ 来触发。
  3. 如果有多个 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 分钟的时间,值得一看

作者:LastSun