Rendre la mémoire tampon en lecture seule par fichier

8

Je sais que je peux définir quelque chose comme -*- mode: read-only-mode -*-dans un commentaire et Emacs ouvrira le fichier correspondant en lecture seule. Mon problème est que je veux toujours lire les fichiers qui incluent une telle ligne avec le org-modemode principal; Emacs ouvre ces fichiers dans fundamental-mode.

Comment puis-je dire à Emacs d'ouvrir un fichier en lecture seule et de toujours lui faire utiliser le bon mode principal?

shackra
la source

Réponses:

10

read-only-modeest un mode mineur et ne doit pas être défini de cette façon.

Il est vrai que l'utilisation mode:de modes mineurs fonctionnait auparavant. Je ne suis pas sûr au départ si c'est toujours le cas, mais c'est définitivement obsolète (et si ça claque org-mode, alors peut-être que ça ne fonctionne plus du tout).

Utilisez uniquement mode:pour définir le mode principal et utilisez eval:pour activer les modes mineurs:

Vous pouvez probablement utiliser l'un de ces éléments:

-*- eval: (read-only-mode 1) -*-
-*- buffer-read-only: t -*-
phils
la source
L'utilisation mode:avec des modes mineurs fonctionne toujours. Je l'utilise moi-même, listant généralement un mode majeur d'abord, puis un mode mineur (comme outline-minor) par la suite. Mais je vois maintenant que le manuel dit de ne pas faire ça, donc je suppose que je devrai changer cette pratique. Probablement avec un crochet plutôt qu'un eval.
Harald Hanche-Olsen
6

La manière normale serait de rendre le fichier en lecture seule dans votre système d'exploitation. Avec le fichier ouvert, exécuté M-x set-file-modes RET(ou son alias chmod), appuyez sur down RETpour entrer le nom du fichier actuel, puis entrez a=r(pour «tout devient lu» - voir les autorisations de fichier pour plus de détails). Vous pouvez également le faire à partir de Dired ou de tout autre gestionnaire de fichiers.

Sinon, si vous souhaitez que le fichier soit en lecture seule dans Emacs mais accessible en écriture dans d'autres applications, définissez la variable de fichier buffer-read-onlysur t.

-*- buffer-read-only: t -*-
Gilles 'SO- arrête d'être méchant'
la source