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?



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 .


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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.