Qué tal si:
(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))
Pon eso en tu ~/.emacs
y deberías poder usarlo M-x replace-smart-quotespara arreglar todas las citas en el búfer actual o en la región seleccionada.
Para evitar reiniciar Emacs para que el ~/.emacs
cambio surta efecto, mueva el cursor al final de defun
con M-C-ey evalúelo C-x C-e.
Actualizar re comentario:
Para hacer esto automáticamente al tirar (pegar), puede hacer algo como lo siguiente:
(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)))
Si luego quieres hacer eso cuando golpeas C-y, puedes vincularlo usando:
(global-set-key (kbd "C-y") 'yank-and-replace-smart-quotes)
Sin embargo, probablemente sea una mejor idea usar otra clave (tal vez C-c y) ya que esto usará algunas de las yank
funciones predeterminadas .