Answers:
怎么样:
(defun replace-smart-quotes (beg end)
"Replace 'smart quotes' in buffer or region with ascii quotes."
(interactive "r")
(format-replace-strings '(("\x201C" . "\"")
("\x201D" . "\"")
("\x2018" . "'")
("\x2019" . "'"))
nil beg end))
将其放入您的目录中~/.emacs
,您应该可以使用它M-x replace-smart-quotes来修复当前缓冲区或选定区域中的所有报价。
为避免重新启动Emacs以使~/.emacs
更改生效,请将光标移到defun
with 的末尾M-C-e并对其求值C-x C-e。
更新评论:
要在粘贴(粘贴)时自动执行此操作,可以执行以下操作:
(defun yank-and-replace-smart-quotes ()
"Yank (paste) and replace smart quotes from the source with ascii quotes."
(interactive)
(yank)
(replace-smart-quotes (mark) (point)))
如果您想在点击时执行此操作C-y,则可以使用以下方法进行绑定:
(global-set-key (kbd "C-y") 'yank-and-replace-smart-quotes)
但是,最好使用另一个键(也许是C-c y),因为这将使用一些默认yank
功能。