Origem do erro 'buffer somente leitura'
Eu acredito que a fonte desse erro: Buffer is read-only: <#BUFFER-NAME>
está no código fonte C.
Portanto, a solução para isso seria ajustar o código-fonte e criar o emacs localmente, comentando esta linha específica .
Para referência, aqui está o trecho de código que gera esse erro:
if (!NILP (BVAR (current_buffer, read_only))
&& NILP (Vinhibit_read_only)
&& NILP (Fget_text_property (pos, Qinhibit_read_only, Qnil)))
xsignal1 (Qbuffer_read_only, Fcurrent_buffer ());
return Qnil;
.. e comentar essa xsignal
linha deve fazer o truque.
Abordagem sugerida
Existe uma maneira muito mais fácil de evitar esse incômodo enquanto você estiver trabalhando em um buffer somente leitura. Você NÃO pode temporariamente torná-lo somente leitura.
- Doing
M-x read-only-mode
(vinculado por padrão a C-x C-q
) alterna qualquer buffer entre o modo somente leitura e o modo editável.
Portanto, se você estiver recebendo muitos desses erros, simplesmente torne o buffer temporariamente editável pressionando C-x C-q
.
Uma nota de aviso: Fazer o hack da fonte C pode ser uma fonte importante de confusão no futuro. Então eu não faria isso.
command-error-function
valor não afetará todos os erros, e não apenas os erros "somente leitura do buffer"? Não consigo descobrir exatamente o impacto de toda essa mudança no código-fonte.