在模型行中顯示檔案權限位元?

在模型行中顯示檔案權限位元?

今天我發現自己在 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)--------------

相關內容