파일 세트를 위한 Emacs 기능

파일 세트를 위한 Emacs 기능

Emacs에서 파일 세트에 기능을 적용하는 방법이 있습니까? (또는 그렇지 않은 경우 그러한 확장에 대해 알고 있습니까?)

예를 들어 디렉터리에 프로젝트(예: 컴파일하고 실행하려는 스크립트, 소스 코드, XML 데이터베이스)가 있는 경우입니다. 이 모든 파일에 대해 하나씩 이 함수를 실행하려고 합니다.

(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)

관련 정보