Tornar o buffer somente leitura por arquivo

8

Eu sei que posso definir algo como -*- mode: read-only-mode -*-dentro de um comentário e o Emacs abrirá o arquivo correspondente como somente leitura. Meu problema é que ainda quero ler arquivos que incluam essa linha no org-modemodo principal; O Emacs abre esses arquivos no fundamental-mode.

Como posso dizer ao Emacs para abrir um arquivo como somente leitura e ainda fazê-lo usar o modo principal correto?

shackra
fonte

Respostas:

10

read-only-modeé um modo secundário e não deve ser definido dessa maneira.

É verdade que o uso mode:com modos menores costumava funcionar. Não tenho certeza se isso ainda acontece, mas é definitivamente preterido (e se estiver atrapalhando org-mode, talvez não funcione mais).

Use apenas mode:para definir o modo principal e eval:para ativar os modos secundários:

Você provavelmente pode usar um destes:

-*- eval: (read-only-mode 1) -*-
-*- buffer-read-only: t -*-
phils
fonte
Usar mode:com modos menores ainda funciona. Eu mesmo o uso, normalmente listando um modo principal primeiro e depois um modo menor (como outline-minor) depois. Mas agora vejo que o manual diz para não fazer isso, então acho que terei que mudar essa prática. Provavelmente com um gancho ao invés de um eval.
Harald Hanche-Olsen
6

A maneira normal seria tornar o arquivo somente leitura no seu sistema operacional. Com o arquivo aberto, execute M-x set-file-modes RET(ou seu apelido chmod), pressione down RETpara inserir o nome do arquivo atual e digite a=r(para “tudo se torna lido” - consulte as permissões do arquivo para obter detalhes). Você também pode fazer isso no Dired ou em qualquer outro gerenciador de arquivos.

Alternativamente, se você quiser que o arquivo a ser somente leitura no Emacs, mas gravável em outras aplicações, defina a variável de arquivo buffer-read-onlypara t.

-*- buffer-read-only: t -*-
Gilles 'SO- parar de ser mau'
fonte