我发现自己今天在 Emacs 和 shell 之间切换了好几次,只是为了在保存在 Emacs 中打开的文件之前检查文件权限。
不用说,这不是最理想的,并且提供了充足的改进机会。
我希望模式行显示权限位,有点像;
-:--- .netrc 0600 .... further modeline stuff ....
我所见过的最接近实现这一目标的在 emacs-fu 博客上但是我想要一个更通用的解决方案,而不仅仅是检查文件是否是只读的。
我该如何实现这个目标?
答案1
我玩了一下它并让它为我工作:
;; 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)))
我的模式行现在显示:
-uu-:---F1 .emacs 0644 Top L1 (Emacs-Lisp)--------------