30

特别是,那里最好的片段包是什么?

特征:

  • 易于定义新的片段(纯文本、带默认值的自定义输入)
  • 片段中预定义位置之间的简单导航
  • 多次插入相同的自定义输入
  • 接受当前选定的文本作为自定义输入
  • 跨平台(Windows、Linux)
  • 用简洁的编程语言(首选 Perl、Python、Ruby)编写的动态评估表达式(嵌入代码)
  • 与 Emacs 中的其他包很好地共存

代码模板示例,C 中的一个简单for循环:

for (int i = 0; i < %N%; ++i) {
  _
}

这种通用代码需要大量输入。我想调用一个代码模板或片段来为我插入该样板代码。此外,它在(我的输入替换它)处停止(在 TAB 或其他击键上),%N%光标的最终位置是_.

4

6 回答 6

23

TextMate 的代码片段是最接近的匹配项,但它不是跨平台解决方案,也不适用于 Emacs。

第二个最接近的是YASnippet截屏显示了主要功能)。但它干扰了hippie-expand我的设置中的包,并且嵌入的语言是 EmacsLisp,我不习惯在外面.emacs

编辑:在这里发布我的答案以允许投票YASnippet

于 2008-09-14T16:30:24.150 回答
5

就个人而言,我多年来一直在使用 Dmacro ( ftp://ftp.sgi.com/other/dmacro/dmacro.tar.gz )。

这是对它的评论,其中还提到了一些替代方案:http: //linuxgazette.net/issue39/marsden.html

于 2008-09-15T16:04:54.750 回答
4

EmacsWiki 有一个模板引擎页面

其中,我在(遥远的)过去使用tempo将表格支持添加到html-helper-mode,但不知道它在过去 15 年中进展如何。

于 2008-09-16T05:23:21.367 回答
3

我会为速度片段添加我的投票...易于设置,功能强大(您可以在模板中运行任意 elisp - 这样您就可以小写事物,查找文件名和类,计算事物等),设置缩进,集成带有缩写......我经常使用它;)

于 2009-04-08T23:19:04.540 回答
2

我投票给http://cedet.sourceforge.net/srecode.shtml

它具有非常干净的语法,并且可以通过Semantic.

它也是一个受支持的大型CEDET发行版的一部分(它内置于 Emacs 的 24.x 版本系列中)。

UPDATE YASnippet也是一个强大的模板引擎。但它使用丑陋的文件命名模式(您的文件名 === 模板名),因为您不能将多个模板放入一个文件中并且存在国家字符集问题......

于 2013-09-16T13:18:05.270 回答
1

您可以尝试一个轻量级的解决方案muban.el

它完全用 Elisp 编写,语法非常简单。

于 2018-05-03T21:12:21.087 回答