ACL2 を使用しているときに、emacs でキーストロークの奇妙な呪文を唱えると、バッファー内の領域が読み取り専用になります。何が原因でしょうか? リージョンを読み取り専用としてマーク解除するにはどうすればよいですか?
質問する
32 次
1 に答える
0
原因:
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://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>
于 2015-03-27T16:18:42.707 に答える