我已经使用C-x C-f /path/to/files/*.txt
在emacs中打开了很多文件另外,我还创建了一个键盘宏并将其保存为my-macro
现在,我想在所有打开的缓冲区上运行此宏。如何在emacs中执行此操作?
我想提到我是emacs的新手,也不了解emacs lisp代码,但是可以用C ++很好地编写代码。因此,如果有人提出建议或给出一些轻率的代码,请通过写评论也对我有利,以便我可以根据需要进行修改。
编辑1:我尝试通过先按[[m然后按[[E然后按Eval(form): my-macro
但是出现以下错误
'my-macro
(或等效的(quote my-macro)
)如果您真的想在所有缓冲区中执行宏(请注意*Messages*
之类的缓冲区,这将是一个编程的替代方法
(defun execute-my-macro-in-all-buffers ()
(interactive)
(dolist (buffer (buffer-list))
(with-current-buffer buffer
(if (and buffer-file-name
(y-or-n-p (format "Execute macro in %s? " buffer-file-name)))
(execute-kbd-macro 'my-macro)))))