Que tal:
(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))
Coloque isso no seu ~/.emacs
e você poderá usar M-x substituir as aspas inteligentes para corrigir todas as aspas no buffer atual ou na região selecionada.
Para evitar a reinicialização do Emacs para que a mudança de ~/.emacs
tenha efeito, mova o cursor para o final do defun
com MCe e avalie-o Cx Ce .
Atualizar re comentário:
Para fazer isso automaticamente ao puxar (colar), você pode fazer algo como o seguinte:
(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)))
Se você quiser fazer isso quando acertar C-y , você pode vinculá-lo usando:
(global-set-key (kbd "C-y") 'yank-and-replace-smart-quotes)
Provavelmente, é uma idéia melhor usar outra chave, no entanto (talvez C-c y ), pois isso usará parte da funcionalidade yank
padrão.