
Emacsでファイルセットに機能を適用する方法はありますか? (またはそうでない場合、そのような拡張について知っていますか?)
たとえば、ディレクトリにプロジェクト(たとえば、コンパイルして実行したいスクリプト、ソースコード、XMLデータベース)があるとします。これらすべてのファイルに対して1つずつこの関数を実行しようとしています。
(defun indent-buffer ()
"Indent the whole buffer according to indent-region-function."
(interactive)
(indent-region (point-min) (point-max)) )
少なくともある程度の状況を複雑にすることは、Emacsがそのような機能を賢く実行するために正しいモードにある必要があるということです。もちろん、これは不可能ではありませんが、言葉です。
最も素晴らしいインターフェースは、Emacsをサーバーとして使用し、コマンドとファイルのリストを引数として送信することです。
Diredでできるなら、これが次善策です。
答え1
バッチモードでは、パラメータを繰り返します。
emacs --batch -l cl --eval '
(dolist (filename command-line-args-left)
(find-file filename)
(indent-region (point-min) (point-max))
(save-buffer)
(kill-buffer))'
diredでdired-map-over-marks
マクロdired.el
またはdired-map-over-marks-check
関数を使用してくださいdired-aux.el
。
(dired-map-over-marks-check indent-buffer nil 'indent)