auto-insert-mode というのを知った。便利だ。

どもどえす。
いい感じに胸の筋トレができて気持ちがいいです。
でも,のどがいがいがするので,これは例のパターンなのではと戦々恐々でござんす。

ヘッダファイルにインクルードガードを書くのがめんどい。

ですよね?
これはあれですか? IDE への流れですかい?
IDE がインクルードガードを入れてくれるのかどうかは知らないけど。
で,素敵なWebページを発見。

http://www.02.246.ne.jp/~torutk/cxx/emacs/mode_extension.html


謝謝。
auto-insert-mode というのがあるのですね。へぇへぇへぇ。
3へぇがでたところで,ワタシの場合は,インクルードガードは以下のようになって欲しい。

#ifndef SOME_HEADER_H
#define SOME_HEADER_H

#endif  // SOME_HEADER_H


なので,そうなってもらうように .emacs 的なファイルに以下を書いた。

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; auto-insert-mode
(require 'autoinsert)
(push '(("\\.\\([Hh]\\|hh\\|hpp\\)\\'" . "C / C++ header")
  (upcase
   (concat
    (file-name-nondirectory
     (file-name-sans-extension buffer-file-name))
    "_"
    (file-name-extension buffer-file-name)))
  "#ifndef " str n "#define " str "\n\n" _ "\n\n#endif  //" str "\n")
      auto-insert-alist)

それぞれの sexp を評価すれば,sexp ってなんかやらしい。/////
うるへー。きもいんだよ。あい,ごめんちゃい。
で,それぞれを C-xC-e とかで評価すればオッケー牧場。


たぶん最初にマッチしたものが適用されるので,push しておけば,
余裕。auto-insert-alist のヘルプから引用。

Only the first matching element is effective.

うん,そうだね。
改行が CRLF な人は,"\n" を "\r\n" とかにすればいいと思いますです。


あぁ,忘れてた。ヘッダファイルを作成するときには,
M-x auto-insert-mode してからね♪