我开始使用defaultcontent.el来填充新创建的内容缓冲区。 显然这个模块没有被广泛使用。我认为有3个人,包括我和使用它的作者,因为当我搜索它时,我发布的emacs.el成为第一个热门。
尽管如此,我发现它很有用。我为每种文件类型指定了一个模板,每次我创建该类型(或扩展名)的新文件时,它都会填充模板文件中的内容。该模板支持用“@@”设置的众所周知的标签,这些标签在运行时被替换:
例如,在模板中找到@@ AUTHOR @@,它会在运行时在新创建的文件中替换为您的用户名。
好吧,这不是defaultcontent.el的广告,我只是想我会解释一下。
这是问题所在。
模板中众所周知的标签之一是LISP - 它声称运行任意elisp代码以生成要插入新缓冲区的内容。 (用法:@@ LISP(此处 lisp内容)@@)。这取决于一个函数read-closest-sexp
,我猜这个函数只是读取了性别。
我找不到这个功能。它不包含在defaultcontent.el中,而且我在elisp上不够容易创建它。我查看了emacs-lisp \ lisp.el的提示,但它似乎并不明显。
问题:我怎样才能将sexp读入变量?
我猜这是elisp中的两行...
答案 0 :(得分:3)
尝试点对点:
(require 'thingatpt)
(let ((sexp (thing-at-point 'sexp)))
(do-something-with sexp))
如果忽略了这样做,确实有两行:)