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 に答える