0

我正在尝试将自动插入和速度模板结合起来,以自动用正确的内容填充新文件。

我的目标是让自动插入调用速度模板,为它提供一些数据(例如类名)。

像这样的东西:

(eval-after-load 'autoinsert
'(define-auto-insert
     (cons "\\.\\([Hh]\\|hh\\|hpp\\)\\'" "My C / C++ header")
     (lambda()
         (tempo-template-c++-class))))

我想为 C++ 类模板提供缓冲区的文件名,以便它可以很好地扩展。理想情况下,创建一个名为“foo.h”的文件将使用“foo”作为数据扩展模板,从而创建“foo”类。

我尝试按照Tempo Manual 中的说明使用“保存列表” ,但到目前为止还没有运气。

谢谢您的帮助。

顺便问一下,有没有比这更好的方法

(file-name-sans-extension (file-name-nondirectory buffer-file-name))

从文件中获取类名?

4

1 回答 1

0

C-h f tempo-define-template RET给出模板元素列表及其含义:

A string: It is sent to the hooks in `tempo-insert-string-functions',
and the result is inserted.
...
Anything else: It is evaluated and the result is treated as an
element to be inserted.  One additional tag is useful for these
cases.  If an expression returns a list '(l foo bar), the elements
after `l' will be inserted according to the usual rules.  This makes
it possible to return several elements from one expression.

因此,只需将(file-name-sans-extension (file-name-nondirectory buffer-file-name))模板放入您想要类名的位置(是的,我认为这确实是从文件名中获取类名的最佳方法)。

于 2013-01-25T22:09:02.503 回答