Emacs:键盘宏和Dired

4
有没有一种emacs命令可以将kbd宏应用于dired中的每个文件?
例如,query-replace-regexp具有dired-do-query-replace-regexp。
我正在寻找一个dired-do-call-last-kbd-macro。
2个回答

3

另一个选项是这样做:

  1. 进入您的dired缓冲区的顶部
  2. 录制宏
  3. 按Enter键访问文件
  4. M-x kmacro-call-ring-2nd
  5. C-x o(打开其他缓冲区)
  6. 向下移动一行
  7. 停止录制
  8. C-u 0 C-x e(调用最后一个键盘宏,直到文件结束)

有趣的是,但你需要注意先加载kmacro(这是我以前从未见过的库)。 - dkagedal

1

C-h f dired-do-query-replace-regexp 显示了此代码:

(dolist (file (dired-get-marked-files nil nil 'dired-nondirectory-p)) (let ((buffer (get-file-buffer file))) (if (and buffer (with-current-buffer buffer buffer-read-only)) (error "文件 `%s' 是只读的" file))))

我会编写一些elisp代码,以此作为模板来实现您想要的功能


这只是显示错误消息的部分。执行替换的部分是这个:(tags-query-replace from to delimited '(dired-get-marked-files nil nil 'dired-nondirectory-p))但你发布的代码可能更适合作为基础代码。 - dkagedal

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接