como remover citações inteligentes em copiar / colar?

12

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

O texto original tem citações inteligentes. Eu não quero citações inteligentes na saída.

Existe alguma maneira, seja no lado de cópia ou no lado de colar, para remover automaticamente as aspas inteligentes?

    
por incandescentman 04.06.2013 / 05:21

1 resposta

13

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.

    
por 06.06.2013 / 01:42