「カーソルの位置にデバッグ用のprintfを挿入」をひと工夫

id:higepon:20060212:1139757670
これまたしょうもないのですが… printfのフォーマットのところにカーソルを移動しておくと、すぐメッセージを編集できます。ちょっと便利になります。こんな感じ。

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

ついでに僕がRubyのプログラムを書くときによく使っている入力補完用Emacs-Lispを挙げておきます。特にruby-insert-blockが便利です。Rubyイテレータ多用するし。

(defun ruby-insert-block ()
  (interactive)
  (insert "do |")
  (setq p (point))
  (insert "|\n end")
  (ruby-indent-command)
  (goto-char p)
  (ruby-indent-command))

(defun ruby-insert-escape ()
  (interactive)
  (insert "#{")
  (setq p (point))
  (insert "}")
  (goto-char p))

(defun ruby-insert-open ()
  (interactive)
  (insert "open('', 'r') ")
  (ruby-insert-block)
  (insert "file")
  (backward-char 16))

(add-hook 'ruby-mode-hook
	  '(lambda ()
	     (define-key ruby-mode-map "\C-cb" 'ruby-insert-block)
	     (define-key ruby-mode-map "\C-ci" 'ruby-insert-escape)
	     (define-key ruby-mode-map "\C-co" 'ruby-insert-open)))