保存時実行属性付与

ubulog: Emacsの保存関係の設定

Emacsにおいてスクリプト保存時に実行属性をつける設定は定番。俺も大昔から使っていた。あまりにも昔なのでいつ設定したのか覚えていない。

(add-hook 'after-save-hook 'executable-make-buffer-file-executable-if-script-p)

ほほぉ、今では標準で設定できるんだね。引用。

(defun executable-make-buffer-file-executable-if-script-p ()
  "Make file executable according to umask if not already executable.
If file already has any execute bits set at all, do not change existing
file modes."
  (and (>= (buffer-size) 2)
       (save-restriction
	 (widen)
	 (string= "#!" (buffer-substring (point-min) (+ 2 (point-min)))))
       (let* ((current-mode (file-modes (buffer-file-name)))
              (add-mode (logand ?\111 (default-file-modes))))
         (or (/= (logand ?\111 current-mode) 0)
             (zerop add-mode)
             (set-file-modes (buffer-file-name)
                             (logior current-mode add-mode))))))