มีวิธีที่ดีกว่าในการไฮไลต์สัญลักษณ์ที่เน้นสีทั้งหมดในบัฟเฟอร์หรือไม่?
จากที่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