Источник ошибки «буфер только для чтения»
Я считаю, что источник этой ошибки: Buffer is read-only: <#BUFFER-NAME>
в исходном коде C.
Таким образом, решение этой проблемы было бы настроить исходный код и построить emacs локально, закомментировав эту конкретную строку .
Для справки вот фрагмент кода, который выдает эту ошибку:
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;
... и закомментирование этой xsignal
строки должно помочь.
Предлагаемый подход
Существует гораздо более простой способ предотвратить это раздражение на время работы в буфере только для чтения. Вы можете временно НЕ делать его доступным только для чтения.
- Выполнение
M-x read-only-mode
(ограниченное по умолчанию C-x C-q
) переключает любой буфер между режимом только для чтения и редактируемым режимом.
Так что, если вы получаете много этих ошибок, просто сделайте буфер временно редактируемым, нажав C-x C-q
.
Предупреждение: в будущем взлом источника C может стать основным источником путаницы. Так что я бы не стал этого делать.
command-error-function
значения на все ошибки, а не только на ошибки «только для чтения в буфере»? Я не могу точно понять, что все эти изменения повлияют на исходный код.