Emacs のもっともおいしい機能の一つですよお。
なにかをスプレー塗装するとき、余計なところは新聞紙とかテープでマスキングしますよね?narrowing って、あれじゃないかなぁとか。
narrow-to-c-function
開発がお仕事だったころは、こんなのを使ってました
(defun mark-c-function ()
"Put mark at end of C function, point at beginning."
(interactive)
(save-excursion
(push-mark (point))
(end-of-defun)
(push-mark (point))
(beginning-of-defun)
(backward-paragraph)))
(define-key c-mode-map "\C-c " 'mark-c-function)
(defun narrow-to-c-function ()
"Narrow to C function"
(interactive)
(let (begin end)
(beginning-of-defun)
(backward-paragraph)
(setq begin (point))
(end-of-defun)
(setq end (point))
(narrow-to-region begin end)))
(define-key c-mode-map "\C-cn" 'narrow-to-c-function)
C ソース見てて、「む」と思ったらすかさず C-c n
その関数以外は一切見えなくなるから、検索も置換もやりたい放題