Джерело помилки "буфер лише для читання"
Я вважаю, що джерело цієї помилки: Buffer is read-only: <#BUFFER-NAME>
у вихідному коді С.
Тож рішенням цього було б налаштувати вихідний код та створити 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
значення вплине на всі помилки, і не лише на помилки "буфера лише для читання"? Я не можу точно зрозуміти, що все це зміни вплине на вихідний код.