Sea*_*ean 11
这是另一种方法:
首先,在*scratch*缓冲区中评估此函数定义:
(defun indent-marked-files ()
(interactive)
(dolist (file (dired-get-marked-files))
(find-file file)
(indent-region (point-min) (point-max))
(save-buffer)
(kill-buffer nil)))
Run Code Online (Sandbox Code Playgroud)
接下来,在目录顶层打开一个Dired缓冲区,在该目录下您要更改所有文件.给dired命令一个数字前缀,以便它要求交换机给出ls命令,并添加R(递归)开关:C-u C-x d R RET your-directory RET.
接下来,标记递归目录列表中的所有常规文件:首先*/标记所有目录,然后*t切换选择.
最后,运行以上命令:M-x indent-marked-files.
请注意,如果您已经有任何缓冲区访问任何目标文件,它们将被杀死indent-marked-files.另请注意,所有文件更改都不可撤消; 谨慎使用!我在一个简单的情况下测试它,它似乎按照描述工作,但我不保证.
创建一个宏来做它.在dired(C-x d)中打开目录,然后:
bury-buffer.你将回到直接缓冲区.所以现在你有一个宏打开当前行的文件,格式化它,回退到dired,并指向下一行.F4根据需要多次运行它.