emacs上自动标头的模板

2021-04-12 00:25:57 发布

您现在位置:Python中文网/ 问答频道 /正文

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

我用我的MBP使用SSH访问大学的linux机器,用python和emacs编程。在

每个文件都必须有一个头:

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

我的问题是:

有没有一种方法可以使它成为一个永久的模板,这样每当我创建一个新文件时,这些注释就已经存在了?除了文件日期和描述之外,所有内容都是静态的。如果有办法,是否也有办法自动填写变化的内容文件.py=什么每个程序.py日期是今天还是什么?在

2条回答
网友
1楼 ·

header2.el是一个很好的方法,但是,这里有机会学习一些EmacsLisp,看看如何编写emacs的使用脚本。也许这是一个坏主意,因为你正在学习编程,但也许你会发现它更清楚(比不友好的header2和yasnipet文档)。在

这个代码的优点是你可以按需调用它,我们可以做我们想做的事情。在

(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 (format "# date : %s \n" cur-date))
  (insert (format "# Description : %s \n" cur-description))
)

把它放在你的点文件(.emacs.d)中/初始标高或~/.emacs)。在

你可以试着把它放在草稿缓冲区,在最后一个括号后面,然后点击C-xc-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:定义变量的方法
  • 从minibuffer读取:执行它所说的:)第二个参数是要编辑的可选默认文本
  • 组织读取日期:一个很好的实用函数从组织模式。您可以使用Shift left/right更改日期。它返回一个字符串。在
  • 缓冲区文件名:returns“/home/you/dir”/try.py““
  • 文件名nondirectory:返回“try.py““
  • 插入:在当前缓冲区中插入文本
  • format“foo%s\n”:字符串格式,类似于python

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

网友
2楼 ·

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

你的问题几乎与this question几乎是在同一时间提出的。(巧合?)有关header2.el的更多信息,请参阅该问题。或者查看emacswiki页面Automatic File Headers,了解更多描述和示例。在

相关问题