所以我跳回去尝试学习编程。
我正在使用通过SSH的MBP来访问大学的linux计算机,并使用python和emacs进行编程。
每个文件都必须具有标题:
# File: file.py # Author: My Name # Date: 30 September 2014 # Section: 1 # Email: me@school.edu # Description: sample header
我的问题是:
有没有办法使该模板成为永久模板,以便每当我创建一个新文件时,这些注释就已经存在了?除文件日期和说明以外的所有内容都是静态的。如果有办法,是否还有办法自动填写更改file.py = whatINamedTheProgram.py和date = todaysDate的内容?
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 (format "# date : %s \n" cur-date)) (insert (format "# Description : %s \n" cur-description)) )
将其放在您的点文件(.emacs.d / init.el或〜/ .emacs)中。
您可以通过将其放在暂存缓冲区中,紧跟在最后一个括号之后并按Cx Ce(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读取:按其说的做:)第二个参数是要编辑的可选默认文本
org-read-date:组织模式下的一个不错的实用程序函数。您可以使用Shift-向左/向右更改日期。它返回一个字符串。
缓冲文件名:返回“ /home/you/dir/try.py”
文件名非目录:返回“ try.py”
插入:在当前缓冲区中插入文本
格式“ foo%s \ n”:字符串格式,如python中
就是这样。我让您根据需要完成功能!