มีวิธีที่ดีกว่าในการไฮไลต์สัญลักษณ์ที่เน้นสีทั้งหมดในบัฟเฟอร์หรือไม่?
จากที่C-h f unhighlight-regexpเราได้รับ
(REGEXP unhlightlight-regexp)
ลบไฮไลต์ของการแข่งขันแต่ละรายการเป็น REGEXP ที่กำหนดโดย hi-lock โต้ตอบพร้อมท์สำหรับ REGEXP ยอมรับเฉพาะ regexps ที่แทรกไว้ก่อนหน้านี้โดยฟังก์ชั่นโต้ตอบแบบ hi-lock หาก REGEXP เป็น t (หรือถ้า Cu ถูกระบุแบบโต้ตอบ) แล้วลบไฮไลต์ hi-lock ทั้งหมด
นั่นหมายความว่าเราเพียงแค่ต้องเรียกunhighlight-regexpด้วยtเป็นอาร์กิวเมนต์เพื่อลบไฮไลต์ทั้งหมดที่ไฮไลต์ในบัฟเฟอร์
ถ้ามันเป็นสิ่งหนึ่งที่เวลาก็สามารถทำได้อย่างรวดเร็วโดยหรือM-: (unhighlight-regexp t) C-u M-s h uแต่ดูเหมือนว่านี่เป็นสิ่งที่คุณต้องทำบ่อยครั้ง ในกรณีนั้นจะเป็นการดีกว่าถ้าต้องการห่อในinteractiveฟังก์ชั่นและผูกมันไว้กับกุญแจ
ด้านล่างเป็นโซลูชั่นที่นำเสนอที่my/unhighlight-all-in-bufferเป็นเสื้อคลุมฟังก์ชั่นการโต้ตอบและถูกผูกไว้ในhU search-mapโดยค่าเริ่มต้นคำนำหน้าเป็นsearch-map M-sดังนั้นตอนนี้เช่นเดียวกับM-s h uการเปิดตัวunhighlight-regexp, M-s h U(หมายเหตุทุน U) my/unhighlight-all-in-bufferที่เปิดตัว
(require 'hi-lock)
(defun my/unhighlight-all-in-buffer ()
"Remove all highlights made by `hi-lock' from the current buffer.
The same result can also be be achieved by \\[universal-argument] \\[unhighlight-regexp]."
(interactive)
(unhighlight-regexp t))
(define-key search-map "hU" #'my/unhighlight-all-in-buffer)
มีวิธีที่ดีกว่าในการไฮไลต์สัญลักษณ์ที่จุดหรือไม่
สิ่งที่ดีคือคุณไม่จำเป็นต้องวางจุดบนสัญลักษณ์ที่คุณจำเป็นต้องไฮไลต์
คุณเพียงแค่โทรM-x unhighlight-regexpหรือM-s h u(การเชื่อมโยงเริ่มต้น) และกดM-p/ M-nจนกว่าคุณจะเจอ regexp ของสัญลักษณ์ที่คุณจำเป็นต้องไฮไลต์และกด Enter