Làm thế nào để loại bỏ dấu ngoặc kép thông minh trong bản sao / dán?


13

Tôi đang sao chép văn bản từ Google Chrome hoặc PDF và dán vào Emacs.

Các văn bản gốc có trích dẫn thông minh. Tôi không muốn báo giá thông minh trong đầu ra.

Có cách nào, hoặc ở phía Sao chép hoặc ở phía Dán, để tự động loại bỏ các trích dẫn thông minh không?



Vấn đề tương tự xảy ra khi sao chép từ nhiều trình soạn thảo văn bản khác nhau trên OS X khi bật tùy chọn hệ thống "sử dụng dấu ngoặc kép thông minh". Cụ thể, tôi đã gặp phải điều này khi sao chép từ Evernote sang một mẫu web, sau đó loại bỏ hoàn toàn các dấu ngoặc kép "thông minh" và dấu nháy đơn. Câu trả lời được chấp nhận cung cấp một bước trung gian gọn gàng để giải quyết điều này.
TheBamf

Câu trả lời:


14

Làm thế nào về:

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

Đặt nó trong của bạn ~/.emacsvà bạn sẽ có thể sử dụng M-x replace-smart-quotesđể sửa tất cả các trích dẫn trong bộ đệm hiện tại hoặc khu vực được chọn.

Để tránh khởi động lại Emacs để ~/.emacsthay đổi có hiệu lực, hãy di chuyển con trỏ của bạn đến cuối cùng defunvới M-C-evà đánh giá nó C-x C-e.

Cập nhật lại bình luận:

Để tự động làm điều này khi kéo (dán), bạn có thể làm một cái gì đó như sau:

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

Nếu sau đó bạn muốn làm điều đó khi bạn nhấn C-y, bạn có thể liên kết nó bằng cách sử dụng:

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

Tuy nhiên, có lẽ nên sử dụng một khóa khác (có thể C-c y) vì điều này sẽ sử dụng một số yankchức năng mặc định .


Cảm ơn. Nhưng những gì về một chức năng sẽ loại bỏ các trích dẫn trong khi sao chép / dán? Kiểu như "Dán và Định dạng Kết hợp" với trích dẫn thông minh.
sợi đốt

2
Bạn cũng có thể làm điều đó, tôi đã thêm một ví dụ. Đừng quên chấp nhận câu trả lời nếu nó giải quyết được vấn đề của bạn.
Tom
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.