3

例如,C/C++中的标准库使用频率很高,到web浏览器上搜索如何使用库组件的代码示例,复制源代码并修改以适应您的需要,效率非常低;几个月后,你需要再次使用那个库组件,但忘记了如何使用它,你必须再次重复整个过程!

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

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

是否有 Emacs 插件可以做到这一点?

4

5 回答 5

6

我不会为您描述的任务推荐片段。

片段应该经常重复。你不能有很多。

你需要的是你很少使用但可以拥有很多的东西。我正在使用org-mode这个任务。与org-mode您一起可以:

  1. 按语言/图书馆等组织你的知识。
  2. 直接通过 babel 包含小代码片段。
  3. 将任意数量的文件附加到任何标题。

这样,您可以通过标题获得概述/描述,并通过代码块/附件获得实际代码。

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

UPD

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

于 2013-07-19T11:23:34.110 回答
1

EmacsWiki上有一个相当多的列表:模板。

我个人知道TempoModeYasnippets。我更喜欢Yasnippets。这些片段非常容易编写,并且支持您在插入片段时输入的变量字段。

于 2013-07-19T10:53:10.680 回答
1

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

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

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

于 2013-07-19T11:16:27.833 回答
1

过去我曾使用Else-Mode来做这类事情,尤其是当我正在处理的项目有一个非常僵化且冗长的函数头注释时。

于 2013-07-19T13:28:47.313 回答
1

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

于 2013-07-19T15:34:21.690 回答