如题。elisp如何在新建一个java、python或elisp文件之后插入展开snippets?
虽然不是snippet, 但是有个叫auto-insert的功能可以看看
1 个赞
如楼上所说用 auto-insert
配合 yasnippet
或者自己实现,下面是我自用的一个实现
(add-hook 'find-file-hook
#'(lambda ()
(let* ((name (and (not (file-exists-p (buffer-file-name)))
(file-name-extension
(concat "arbitrary"
(file-name-nondirectory
(buffer-file-name))))))
(realname (and name (concat name "." name))))
(and realname
(member realname (directory-files "~/模板"))
(insert-file-contents (concat "~/模板/" realname))
(yas-expand-snippet (buffer-string)
(point-min) (point-max))))))
将代码中的 ~/模板
替换成你自己的模板存放目录,每个模板文件的名字为 name.name
,比如 java
文件的模板就在 ~/模板
建立下一个名为 java.java
的文件。
每次建立新的 java 文件时 java.java
中的内容会被导入进新的 java 文件当中,被 yasnippet 处理。因为有用到 yasnippet
,所以确保该软件已经安装
2 个赞
感谢二位,auto-insert配合ysnippet可以满足需求