カーソルの位置にデバッグ用のprintfを挿入

printfデバッグをする前にバグを出すな、デバッガを使え等のご意見があるかもしれませんが。。
cppのソースを編集中に、C-c dをすると

    printf("%s %s:%d\n", __func__, __FILE__, __LINE__);

が挿入されます。
ソースを見れば分かると思いますがprintfでなくても何でもできます。
ちなみに手元ではprintfではなくTRACEマクロにしてます。

(defun my-insert-printf-debug ()
  (interactive)
  (insert-string "printf(\"%s %s:%d\\n\", __func__, __FILE__, __LINE__);")
  (indent-according-to-mode)
)

(add-hook 'c++-mode-hook
  (function (lambda ()
              (define-key c++-mode-map (kbd "C-c d") 'my-insert-printf-debug)
)))


しょうもないと思われるかもしれませんが、これが意外と重宝するんですよ。
いやまじで。