วิธีลบเครื่องหมายคำพูดอัจฉริยะในการคัดลอก / วาง


13

ฉันกำลังคัดลอกข้อความจาก Google Chrome หรือ PDF และวางลงใน Emacs

ข้อความต้นฉบับมีคำพูดที่ฉลาด ฉันไม่ต้องการราคาอัจฉริยะในผลลัพธ์

มีทางใดทางหนึ่งที่ด้านการคัดลอกหรือด้านการวางเพื่อตัดราคาอัจฉริยะโดยอัตโนมัติ



ปัญหาเดียวกันนี้เกิดขึ้นเมื่อคัดลอกจากตัวแก้ไขข้อความต่าง ๆ บน OS X เมื่อเปิดใช้งานการตั้งค่าระบบ "ใช้คำพูดอัจฉริยะ" โดยเฉพาะฉันพบสิ่งนี้เมื่อคัดลอกจาก Evernote ไปยังแบบฟอร์มบนเว็บจากนั้นจึงใส่เครื่องหมายคำพูด "apostrophe" และ "apostrophes" ทั้งหมด คำตอบที่ยอมรับนั้นเป็นขั้นตอนกลางในการแก้ไขปัญหานี้
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-eC-x C-e

อัปเดตความคิดเห็นใหม่:

หากต้องการทำสิ่งนี้โดยอัตโนมัติเมื่อ yanking (การวาง) คุณสามารถทำสิ่งต่อไปนี้:

(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
คุณสามารถทำเช่นนั้นฉันได้เพิ่มตัวอย่าง อย่าลืมยอมรับคำตอบถ้ามันแก้ปัญหาของคุณ
ทอม
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.