2009-08-08 91 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