Как удалить смарт-цитаты в копировании / вставке?

13

Я копирую текст из Google Chrome или PDF-файлов и вставляю в Emacs.

Оригинальный текст имеет умные цитаты. Я не хочу умных цитат в выводе.

Есть ли способ, либо на стороне копирования, либо на стороне вставки, автоматически вырезать умные цитаты?

incandescentman
источник
Та же проблема возникает при копировании из различных текстовых редакторов в OS X, когда включена системная настройка «использовать умные кавычки». В частности, я столкнулся с этим при копировании из Evernote в веб-форму, которая затем полностью удаляет все «умные» кавычки и апострофы. Принятый ответ обеспечил аккуратный промежуточный шаг для решения этой проблемы.
TheBamf

Ответы:

14

Как насчет:

(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))

Поместите это в свой файл, ~/.emacsи вы сможете использовать его M-x replace-smart-quotesдля исправления всех кавычек в текущем буфере или выбранном регионе.

Чтобы избежать перезапуска Emacs, чтобы ~/.emacsизменения вступили в силу, переместите курсор в конец defunс M-C-eи оцените его C-x C-e.

Обновите комментарий:

Чтобы автоматически сделать это при дергании (вставке), вы можете сделать что-то вроде следующего:

(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)))

Если вы хотите сделать это при нажатии C-y, вы можете связать его, используя:

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

Однако, возможно, лучше использовать другой ключ (возможно C-c y), поскольку он будет использовать некоторые функции по умолчанию yank.

Том
источник
Благодарю. Но как насчет функции, которая удаляет кавычки во время копирования / вставки? Вроде как «Вставить и сопоставить форматирование» с извлечением умных цитат.
Лампа накаливания
2
Вы тоже можете это сделать, я добавил пример. Не забудьте принять ответ, если он решит вашу проблему.
Том