2009-08-08 87 views
1

我一直在使用emacs一段时间,并且正在慢慢地掌握一些东西。但是,我不知道足够的emacs-lisp来实现以下功能:需要一个emacs-lisp函数来打开某些文件类型为只读

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

我更喜欢打开我的文件只读,以避免任何杂乱的编辑,但当emacs试图自动打开文件并写入它们(例如在组织模式)时,这会让人恼火,因此需要对于这样的功能。

回答

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) 
+0

谢谢! 这有效。 – vedang 2009-08-08 13:12:02