在模式行中显示文件权限位?

在模式行中显示文件权限位?

我发现自己今天在 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)--------------

相关内容