需要emacs-lisp函数才能将某些文件类型打开为只读

时间:2009-08-08 06:13:11

标签: emacs elisp

我一直在使用emacs已经有一段时间了,我正在慢慢掌握一切。但是,我不太了解emacs-lisp以实现以下功能:

我想定义一个列表(比如prog-modes),它将是我使用的编程模式列表(.c,.cpp,.h,.el,.py)。如果我打开的文件是此列表中提到的类型,我希望它以只读方式打开。否则,我希望它能正常打开。

我更喜欢以只读方式打开我的文件,以避免任何杂乱编辑的混乱,但当emacs尝试自动打开文件并写入文件时(例如,在org-mode中),这会变得很烦人,因此需要这样的功能。

1 个答案:

答案 0 :(得分:8)

这样的事情应该满足你的需求。显然,自定义主要模式列表:

(defun make-some-files-read-only ()
  "when file opened is of a certain mode, make it read only"
  (when (memq major-mode '(c++-mode tcl-mode text-mode))
    (toggle-read-only 1)))

(add-hook 'find-file-hooks 'make-some-files-read-only)