
Ich habe heute mehrmals zwischen Emacs und einer Shell gewechselt, nur um die Dateiberechtigungen zu überprüfen, bevor ich die in Emacs geöffnete Datei gespeichert habe.
Es ist unnötig zu sagen, dass dies nicht optimal ist und reichlich Gelegenheit zur Verbesserung bietet.
Ich möchte, dass die Modeline die Berechtigungsbits anzeigt, ungefähr so:
-:--- .netrc 0600 .... further modeline stuff ....
Das Beste, was ich bisher gesehen habe, um dieses Ziel zu erreichen, istim Emacs-Fu-Blog, aber ich hätte gerne eine allgemeinere Lösung, als nur zu prüfen, ob die Datei schreibgeschützt ist.
Wie würde ich das erreichen?
Antwort1
Ich habe ein bisschen damit herumgespielt und es funktioniert nun für mich:
;; New variable to contain buffer file permission format construct.
(defvar my-mode-line-buffer-permissions
'(:eval (when (buffer-file-name) (format " %04o" (file-modes (buffer-file-name))))))
;; The variable must be marked as "risky" (see C-h v mode-line-format)
(put 'my-mode-line-buffer-permissions 'risky-local-variable t)
;; And finally add it right after the file name:
(setq-default
mode-line-buffer-identification
(append mode-line-buffer-identification (list 'my-mode-line-buffer-permissions)))
Meine Moduszeile lautet jetzt:
-uu-:---F1 .emacs 0644 Top L1 (Emacs-Lisp)--------------