扩展 Zen Coding 的 $ 表达式

Zen Coding 是一个可以帮助你快速编辑结构化代码(例如 HTML)的插件。

它支持许多文本编辑器和 IDE。但这里要说的是它的 Vim 插件,其 GitHub 地址是 zencoding-vim

我已经使用它一段时间了。它的确让我感觉到在 Vim 中编辑 HTML 不再是一件痛苦的事(当然,觉得痛苦可能是因为 Vim 水平有限)。

它提供了一个强大的文本替换引擎,能让你以最少的按键次数完成复杂的编辑任务。例如,如果想写一个 3 行 4 列的表格,只需输入 table>tr*3>td*4,再按一个快捷键让 Zen Coding 展开,就可以得到想要的结果了。

随着使用的增加,我发现它不仅仅擅长处理 HTML,同时还可以作为一个通用的 snippet 插件来使用,甚至取代 UltiSnips 的位置。因此,我创建了一些 Ruby、JavaScript 等语言的 snippets 来快速输入样板代码。

在创建 snippet 的过程中,我希望把缩进单元提取成一个变量。这样,调整缩进时只需修改这个变量就可以了,而不用单独修改各个 snippet。

然而,Vim 插件还不支持这个功能。之前使用过 Notepad++ 的插件,它支持通过 $ 表达式来引用一个变量。因此我就为 Vim 插件支持了这个功能。

由于忘记提 pull request,这个功能一直躺在我的 fork 中。直到有一天,Vim 插件的作者看到了我的 fork,终于合并了。相关链接有: