Nguồn của lỗi 'chỉ đọc bộ đệm'
Tôi tin rằng nguồn của lỗi đó: Buffer is read-only: <#BUFFER-NAME>
nằm trong mã nguồn C.
Vì vậy, giải pháp cho vấn đề này là điều chỉnh mã nguồn và xây dựng emacs cục bộ bằng cách nhận xét dòng cụ thể này .
Để tham khảo, đây là đoạn mã đó đưa ra lỗi đó:
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;
.. và bình luận ra xsignal
dòng đó nên thực hiện các mẹo.
Phương pháp đề xuất
Có một cách dễ dàng hơn nhiều để tránh sự phiền toái này trong suốt thời gian bạn làm việc trong bộ đệm chỉ đọc .. bạn có thể tạm thời KHÔNG làm cho nó chỉ đọc.
- Làm
M-x read-only-mode
(bị ràng buộc theo mặc định C-x C-q
) bật tắt bất kỳ bộ đệm nào giữa chế độ chỉ đọc và chế độ có thể chỉnh sửa.
Vì vậy, nếu bạn đang nhận được rất nhiều lỗi này, chỉ cần làm cho bộ đệm tạm thời có thể chỉnh sửa bằng cách nhấn C-x C-q
.
Lưu ý cảnh báo: Thực hiện hack nguồn C có thể là một nguồn gây nhầm lẫn lớn trong tương lai. Vì vậy, tôi sẽ không làm điều đó.
command-error-function
giá trị ảnh hưởng đến tất cả các lỗi và không chỉ các lỗi "chỉ đọc bộ đệm"? Tôi không thể chính xác tìm ra những gì thay đổi này sẽ ảnh hưởng từ mã nguồn.