como remover aspas inteligentes em copiar / colar?

13

Estou copiando texto do Google Chrome ou PDFs e colando no Emacs.

O texto original tem aspas inteligentes. Não quero aspas inteligentes na saída.

Existe uma maneira, no lado de Copiar ou no lado de Colar, para remover automaticamente as aspas inteligentes?

homem incandescente
fonte
O mesmo problema ocorre ao copiar de vários editores de texto no OS X quando a preferência do sistema "usar aspas inteligentes" está ativada. Especificamente, eu encontrei isso ao copiar do Evernote para um formulário da Web, que retirou todas as aspas "inteligentes" e apóstrofe completamente. A resposta aceita forneceu uma boa etapa intermediária para resolver isso.
TheBamf 12/08

Respostas:

14

E se:

(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 ~/.emacse você poderá usar M-x replace-smart-quotespara corrigir todas as cotações no buffer atual ou na região selecionada.

Para evitar reiniciar o Emacs para que a ~/.emacsalteração entre em vigor, mova o cursor para o final do defuncom M-C-ee avalie-o C-x C-e.

Atualizar comentário re:

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 clicar C-y, poderá vinculá-lo usando:

(global-set-key (kbd "C-y") 'yank-and-replace-smart-quotes)

Provavelmente, é uma idéia melhor usar outra chave (talvez C-c y), pois isso usará algumas das yankfuncionalidades padrão .

Tom
fonte
Obrigado. Mas e uma função que retira as aspas durante a copiar / colar? Como "Colar e combinar formatação", com a remoção de aspas inteligentes.
incandescentman
2
Você pode fazer isso também, adicionei um exemplo. Não se esqueça de aceitar a resposta se ela resolver o seu problema.
Tom