2009-08-08 5 views
1

J'utilise emacs depuis un certain temps maintenant et je commence lentement à comprendre. Cependant, je ne connais pas assez emacs-lisp pour implémenter la fonctionnalité suivante:J'ai besoin d'une fonction emacs-lisp pour ouvrir certains types de fichiers en lecture seule

Je veux définir une liste (disons prog-modes), qui sera une liste des modes de programmation que j'utilise (.c,. cpp, .h, .el, .py). Si le fichier que j'ouvre est d'un type mentionné dans cette liste, je veux qu'il soit ouvert en lecture seule. Sinon, je veux qu'il s'ouvre normalement. Je préfère ouvrir mes fichiers en lecture seule pour éviter tout désordre avec les modifications parasites, mais cela devient énervant quand emacs essaie d'ouvrir automatiquement les fichiers et de leur écrire (par exemple en mode org), d'où la nécessité pour une telle fonction.

Répondre

8

Quelque chose comme ceci devrait répondre à vos besoins. Évidemment personnaliser la liste des modes principaux:

(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

Merci! Cela fonctionne. – vedang

Questions connexes