Я копирую текст из Google Chrome или PDF-файлов и вставляю в Emacs.
Оригинальный текст имеет умные цитаты. Я не хочу умных цитат в выводе.
Есть ли способ, либо на стороне копирования, либо на стороне вставки, автоматически вырезать умные цитаты?
Я копирую текст из Google Chrome или PDF-файлов и вставляю в Emacs.
Оригинальный текст имеет умные цитаты. Я не хочу умных цитат в выводе.
Есть ли способ, либо на стороне копирования, либо на стороне вставки, автоматически вырезать умные цитаты?
Ответы:
Как насчет:
(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
.