emacs上自动标题的模板

时间:2014-09-30 23:53:25

标签: python emacs

所以我重新开始尝试学习编程。

我正在使用我的MBP使用SSH来访问大学的linux机器并使用python进行编程并使用emacs。

每个文件都需要有一个标题:

# File: file.py
# Author: My Name
# Date: 30 September 2014
# Section: 1
# Email: me@school.edu
# Description: sample header 

我的问题是:

有没有办法让它成为一个永久模板,这样每当我创建一个新文件时,那些评论已经存在?除文件日期和描述之外的所有内容都是静态的如果有办法,是否还有一种方法可以自动填写更改file.py = whateverinamedTheProgram.py和date = todaysDate之类的内容?

2 个答案:

答案 0 :(得分:3)

header2.el是要走的路,但是,这里有机会学习一些emacs lisp,看看我们如何编写emacs的脚本。也许这是一个坏主意,因为你正在学习编程,但也许你会发现它更清晰(比非友好的header2和yasnippet文档)。

此代码的优点是您可以按需调用它,我们可以按照自己的意愿行事。

(defun my-insert-header ()
  "Asks for file name, date, description, ... and insert at point."
  (interactive)
  (setq cur-file (read-from-minibuffer "file name ? " 
                   (file-name-nondirectory (buffer-file-name))))
  (setq cur-date (org-read-date))
  (setq cur-author "Me")
  (setq cur-description (read-from-minibuffer "description ? "))
  (insert (format "# File: %s \n" cur-file))
  (insert (concat "# date : %s \n" cur-date))
  (insert (format "# Description : %s \n" cur-description))
)

将它放在你的点文件(.emacs.d / init.el或〜/ .emacs)中。

你可以把它放在暂存缓冲区中,在最后一个括号后面然后点击C-x C-e(eval-last-sexp)。 (参见本教程:http://wikemacs.org/wiki/Emacs_Lisp_in_15_minutes

现在解释:

  • defun:定义一个函数,比如python中的def。
  • (交互式):让Alt-x调用该函数。见http://ergoemacs.org/emacs/elisp_basics.html
  • setq:定义变量的方法
  • read-from-minibuffer:做它说的:)第二个参数是一个可选的默认文本来编辑
  • org-read-date:来自org-mode的一个很好的实用功能。您可以使用Shift-left / right更改日期。它返回一个字符串。
  • buffer-file-name:返回" /home/you/dir/try.py"
  • file-name-nondirectory:返回" try.py"
  • insert:在当前缓冲区中插入文本
  • 格式" foo%s \ n":字符串格式,如python

就是这样。我让你完成你想要的功能!

答案 1 :(得分:0)

是的,您可以使用库header2.el来执行您的要求。您可以使用不同的编程语言。如果需要,可以在保存文件时自动更新文件头中的特定字段。

您的问题几乎与this question完全相同,几乎同时提出。 (巧合?)有关header2.el的更多信息,请参阅该问题。或者参见Emacs Wiki页面Automatic File Headers,了解更多说明和示例。