저는 (with-current-buffer ....
을 반복해서 반복하는 경향이있어서 with-current-buffer
이라는 매크로 정의를 기반으로 매크로를 정의하기로 결정했습니다. 이것이 제가 지금까지 가지고있는 것입니다.defmacro의 본체가 실행되고 있지 않습니다
(defmacro with-assembla-buffer(asm-buffer-name heading-str &rest body)
"Create buffer with name of ASM-BUFFER-NAME, or uses it if exists,
preps it with readonly/erase/heading - executes `body' - then puts
readonly back on, goes to beginning of buffer, and switches to it."
(with-current-buffer (get-buffer-create asm-buffer-name)
(assembla-mode)
(toggle-read-only -1)
(erase-buffer)
(insert (format "-- %s --------------------" heading-str))
(newline)
`(progn ,@body)
(toggle-read-only 1)
(goto-char (point-min))
(switch-to-buffer (current-buffer))))
이의 몸이 defun
대신 defmacro
완벽하게 작동 하는가이다 전환 있어요 그러나 때, 실행되고 있지 않습니다. 그래서 을 제외하고 왜 몸이 절대 실행되지 않았습니까?, 내 다른 질문은 - 입니다. 이것은 defun보다 매크로로 더 이해가됩니까?
이맥스-23의 '채널 F 스위치 - 투 - buffer'을 인용하자면. 이것은 리스프 프로그램 내에서 다른 버퍼에 일시적으로 에서 작동하는 방법이 아니다 대신'설정 buffer'를 사용하여 그 메싱을 방지 창 버퍼 대응과 함께 " – Stefan