说一下我体验到的差异:
- YASnippet 的 snippet 源貌似好久不更新了, ultisnips 更新就很勤快;只好去看文档尝试自己写。
- ultisnips 文档更详细,有例子说明,甚至还有动图。
- ultisnips 可以用 vimscript 、 shell 、 python 来写, YASnippet 只能 Lisp 。真心不想为这多学门语言。
- ultisnips 可以根据上下文展开,比如只有在行首才展开,比如上一行满足某条件才展开。
- ultisnips 有 visual placeholder ,比如你选择某个词语后展开 snippet ,它会自动帮你把选择的词语放到展开后的 snippet 某位置;
- ultisnips 可以即时创建匿名 snippet ,还可以定义展开前/展开后的动作。这俩特性可以做很多事情。比如我就发现用它可以实现 snippet “参数”的功能,比如你输入 table3x4 ,给你展开一个 3 行 4 列的 table ,而输入 table4x5 ,给你展开一个 4 行 5 列的 table 。
- 有时候你需要多个 snippet 源在一份文档中生效。比如写 html 就希望 js 、 css 甚至 md 的 snippet 都能同时用, ultisnips 很简单添加下文件类型就行, YASnippet 我还不清楚咋搞。
对照着文档目录,暂时就看到这些。另外,想请教下: Lisp 学起来简单不?