- 631 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/12/08(火) 20:01:51 ]
- 618のを試すついでにそれっぽくしてみた。
(defmacro with-file (filename &rest body) (let ((buf (gensym "--buf--")) (fn (gensym "--fn--"))) `(let ((,fn ,filename)) (let ((,buf (get-file-buffer ,fn)) need-close) (unless ,buf (setq ,buf (find-file ,fn) need-close t)) (when ,buf (unwind-protect (progn ,@body) (when need-close (kill-buffer ,buf)))))))) (put 'with-file lisp-indent-function 1) (defmacro edit-files (files &rest body) (let ((f (gensym "--f--"))) `(mapc (lambda (,f) (with-file ,f ,@body (save-buffer))) ,files))) (put 'edit-files lisp-indent-function 1) (edit-files '("~/file1" "~/file2" "~/file3") (upcase-region (point-min) (point-max)))
|

|