简单的自定义快捷补全命令

这里我记录了几个常用的快捷补全命令(snippets)在 sublime text 3 里如何配置。借助 Emcs 里的 yasnippet 插件可以自定义命令实现相同的补全功能。

参照这篇文章,用 M-x yas-new-snippet 新建一个模板,在 # -- 下一行编辑需要补全的正文;key: 对应的是触发字符,如同 sublime text 里的 trigger。

如下是在 markdown mode 下插入图片的示例:

# -*- mode: snippet -*-
# name: insert an image
# key: iimg
# --
<figure><img src="/assets/$2" title="$3">
         <figcaption>$1</figcaption>
</figure>
$0

$num(num = 1, 2, 3, …) 指明补全后光标移动的顺序,由 TAB 切换到下一个位置。$0是特殊的,标注了光标最后停留地。用 M-x yas-expand 补全。需要注意的是,补全功能读取的是光标以前的内容而非全篇,比如光标在 iimg 中间停留唤醒补全是行不通的。另外,写好一个命令后应该存储在相应 mode 下,如 markdown-mode。在 init.el 配置中需要指明快捷命令的所在位置。