在使用ACL2时,我在emacs中点击了一些奇怪的按键,我的缓冲区中的某个区域变为只读。是什么导致这个?如何将区域标记为只读?
答案 0 :(得分:0)
原因:
假设您在〜/ .emacs文件中加载了emacs-acl2.el以及以下内容:
(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://stackoverflow.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>