Emacs defaultcontent.el-@@LISP标记-读取最近的sexp?

Emacs defaultcontent.el-@@LISP标记-读取最近的sexp?,emacs,elisp,Emacs,Elisp,我开始使用来用内容填充新创建的缓冲区。 显然,这个模块没有被广泛使用。我想有3个人使用它,包括我和作者,因为当我搜索它时,我发布的emacs.el会成为第一个热门 尽管如此,我发现它很有用。我为每种文件类型指定一个模板,每次创建该类型(或扩展名)的新文件时,它都会被模板文件中的内容填充。该模板支持以“@@”开头的著名标记,这些标记在运行时会被替换: 作者插入用户名 日期(明显) FILENAME,插入正在创建的文件的名称 ENV(xxx),插入环境变量xxx的值 还有一些其他的标签 例如,在

我开始使用来用内容填充新创建的缓冲区。 显然,这个模块没有被广泛使用。我想有3个人使用它,包括我和作者,因为当我搜索它时,我发布的emacs.el会成为第一个热门

尽管如此,我发现它很有用。我为每种文件类型指定一个模板,每次创建该类型(或扩展名)的新文件时,它都会被模板文件中的内容填充。该模板支持以“@@”开头的著名标记,这些标记在运行时会被替换:

  • 作者插入用户名
  • 日期(明显)
  • FILENAME,插入正在创建的文件的名称
  • ENV(xxx),插入环境变量xxx的值
  • 还有一些其他的标签
例如,在模板中找到@AUTHOR@@时,在运行时新创建的文件中将其替换为您的用户名

好的,这不是defaultcontent.el的广告,我只是想解释一下


问题是

该模板中的一个著名标记是LISP,它声称运行任意elisp代码来生成要插入新缓冲区的内容。(用法:@@LISP(此处为LISP内容)@)。这取决于函数“读取最近的sexp”,我猜它只会在某个点读取sexp

我找不到这个函数。它不包括在defaultcontent.el中,而且我对elisp的了解不够,无法轻松创建它。我在emacs lisp\lisp.el中查找提示,但似乎不明显

问题:我如何将点的sexp读入变量

我猜这是elisp中的两行…

尝试一下:

(require 'thingatpt)
(let ((sexp (thing-at-point 'sexp)))
  (do-something-with sexp))
事实上,如果您忽略了“做某事”选项,则有两行代码:)

在某一点上尝试:

(require 'thingatpt)
(let ((sexp (thing-at-point 'sexp)))
  (do-something-with sexp))
事实上,如果您忽略“做某事”选项,则有两行:)