Отмена области только для чтения в emacs с использованием ACL2
Я столкнулся с каким-то странным заклинанием нажатий клавиш в emacs при использовании ACL2, и область в моем буфере становится доступной только для чтения. Что может вызвать это? Как мне пометить регион только для чтения?
1 ответ
Причиной:
Предположим, у вас есть загруженный emacs-acl2.el и следующее в вашем файле ~/.emacs:
(fset 'copy-and-advance
[?\C-t ?\C-e return ?\C-x ?o ?\C-\M-f ?\C-\M-f ?\C-\M-b])
(global-set-key "\C-tn" 'copy-and-advance)
(global-set-key (kbd "<backtab>") 'copy-and-advance) ; backtab is Shift+tab
Тогда выполнение следующего вызывает проблему:
<switch to *shell* buffer>
ctrl+x b
shift+tab
<"SwitchSwitch" now appears as a read-only region at the prompt of my *shell* buffer>
Решение:
Поместите это в свой ~/.emacs
файл и перезагрузите ~/.emacs
файл (обратите внимание на вопрос о переполнении стека 7410125):
(defun set-region-writeable (begin end)
"See http://stackru.com/questions/7410125"
(interactive "r")
(let ((modified (buffer-modified-p))
(inhibit-read-only t))
(remove-text-properties begin end '(read-only t))
(set-buffer-modified-p modified)))
Затем выполните вышеуказанную функцию с помощью:
ctrl-x h
meta-x set-region-writable
<enter>