Я не считаю это предупреждение особенно полезным и довольно отвлекающим, потому что оно на короткое время скрывает текущий текст в области эха. Это также кажется ненужным, потому что в любом случае я замечу, что не могу писать в областях только для чтения. Есть ли способ отключить его?
9
command-error-function
значения на все ошибки, а не только на ошибки «только для чтения в буфере»? Я не могу точно понять, что все эти изменения повлияют на исходный код.(when ...)
форма в фрагменте кода: таким образом сигналы, которые нас не интересуют, передаются в обработчик по умолчанию иbuffer-read-only
игнорируются.command-error-default-function
.phils
который вы ссылались, является правильным, то есть для этого нам понадобится новый C-код.Источник ошибки «буфер только для чтения»
Я считаю, что источник этой ошибки:
Buffer is read-only: <#BUFFER-NAME>
в исходном коде C.Таким образом, решение этой проблемы было бы настроить исходный код и построить emacs локально, закомментировав эту конкретную строку .
Для справки вот фрагмент кода, который выдает эту ошибку:
... и закомментирование этой
xsignal
строки должно помочь.Предлагаемый подход
Существует гораздо более простой способ предотвратить это раздражение на время работы в буфере только для чтения. Вы можете временно НЕ делать его доступным только для чтения.
M-x read-only-mode
(ограниченное по умолчаниюC-x C-q
) переключает любой буфер между режимом только для чтения и редактируемым режимом.Так что, если вы получаете много этих ошибок, просто сделайте буфер временно редактируемым, нажав
C-x C-q
.Предупреждение: в будущем взлом источника C может стать основным источником путаницы. Так что я бы не стал этого делать.
источник
(defun barf-if-buffer-read-only () nil)
имеет тот же эффект, что и комментированиеxsignal1
вызова и перестройка Emacs. :-)nil
: emacs.stackexchange.com/questions/2935/how-can-i-bring-back-nil