Emacs插件用于存储编写的代码作为模板

时间:2013-07-19 10:30:11

标签: emacs

例如,C / C ++中的标准库经常使用,访问Web浏览器,搜索代码示例如何使用库组件,复制源代码并根据需要进行修改效率非常低;几个月后,你需要再次使用该库组件,但忘记了如何使用它,你必须重复整个过程!

这个过程对我来说效率不高,因为在我们第一次学到东西之后,我们不需要再次完全研究同样的事情;只是它的一部分可以帮助我们回想起如何使用它。我希望将从网站复制的书面代码或示例代码存储起来供以后参考和修改。

Emacs宏是一个选项,但我认为您必须输入整个源代码才能生成所需的模板。如果我找到编写良好的代码,并且我想存储该代码段以供将来参考,该怎么办?宏不会有效率,因为我必须输入整个内容。

是否有Emacs插件可以执行此操作?

5 个答案:

答案 0 :(得分:6)

我不推荐使用您描述的任务的片段。

片段经常被重复。你不能拥有很多。

你需要的是你很少使用的东西,但可以有很多东西。 我正在使用org-mode执行此任务。使用org-mode,您可以:

  1. 按语言/图书馆等组织您的知识。
  2. 直接通过babel包含小代码片段。
  3. 将任意数量的文件附加到任何标题。
  4. 这样您就可以通过标题获得概述/描述, 和代码块/附件的实际代码。

    另一个优点是您可以轻松地查看您的组织文件/附件。 其他优点包括时间戳,TODO和org-mode提供的各种导出。

    UPD

    只是为了给你一个它可以做什么的样本(在emacs中打开,否则它看起来很难看): https://gist.github.com/abo-abo/6040382/raw/1be55e30a9ed8d81cc1b2b752b7d498d05e72978/hyper.org

答案 1 :(得分:1)

EmacsWiki: Templates上有一个列表。

我个人认识TempoModeYasnippets。我更喜欢Yasnippets。这些代码段非常易于编写,并且支持您在代码段插入时输入的可变字段。

答案 2 :(得分:1)

这应该提供插入当前kill-ring的最后一项的命令。

(defun my-code ()
  (interactive "*")
  (insert "(defun ")
  (save-excursion (insert (concat "()
  (interactive \"*\")
  (insert \"" (car kill-ring) "\"))"))))

完成后仍然要指定命令的名称 - 并安装它。

答案 3 :(得分:1)

在过去,我使用Else-Mode来做这类事情,特别是当我正在处理的项目有一个非常严格且长的,必需的函数标题注释时。

答案 4 :(得分:1)

您可以从CEDET包中查看SRecode。除了标准模板,如yasnippet等,它还提供对内容感知模板的支持,就像一些模板只能在类内扩展,一些只作为顶级声明等。