ฉันต้องเน้นสิ่งอำนวยความสะดวกสำหรับ emacs เพื่อทำเครื่องหมายบางบรรทัดในไฟล์ขณะทำงานกับมัน ควรเป็นแบบ smth เช่น M-s h l แต่ควรทำงานตามหมายเลขบรรทัด ไม่ใช่บน regexp ฉันต้องการเน้นบรรทัดปัจจุบัน แต่ hl-line-mode
ไม่เหมาะ เนื่องจากฉันต้องไฮไลต์หลายบรรทัดทุกครั้งที่กดปุ่มเฉพาะบนแต่ละบรรทัด
จะเน้นบรรทัดใดบรรทัดหนึ่งใน emacs ได้อย่างไร
คำตอบ (3)
ฉันเพิ่งเขียนอย่างรวดเร็วต่อไปนี้:
(defun find-overlays-specifying (prop pos)
(let ((overlays (overlays-at pos))
found)
(while overlays
(let ((overlay (car overlays)))
(if (overlay-get overlay prop)
(setq found (cons overlay found))))
(setq overlays (cdr overlays)))
found))
(defun highlight-or-dehighlight-line ()
(interactive)
(if (find-overlays-specifying
'line-highlight-overlay-marker
(line-beginning-position))
(remove-overlays (line-beginning-position) (+ 1 (line-end-position)))
(let ((overlay-highlight (make-overlay
(line-beginning-position)
(+ 1 (line-end-position)))))
(overlay-put overlay-highlight 'face '(:background "lightgreen"))
(overlay-put overlay-highlight 'line-highlight-overlay-marker t))))
(global-set-key [f8] 'highlight-or-dehighlight-line)
(ที่นี่ find-overlays-specifying มาจากหน้าคู่มือ ก>)
โดยจะเน้นบรรทัดปัจจุบัน และเมื่อใช้อีกครั้งจะเป็นการลบออก
สิ่งต่อไปนี้อาจมีประโยชน์เช่นกัน: การลบไฮไลต์ทั้งหมดของคุณออกจากบัฟเฟอร์ (อาจเป็นอันตรายได้ คุณอาจไม่ต้องการมันหากคุณเน้นสิ่งสำคัญ)
(defun remove-all-highlight ()
(interactive)
(remove-overlays (point-min) (point-max))
)
(global-set-key [f9] 'remove-all-highlight)
คุณสามารถใช้ bm.el ได้ คุณสามารถติดตั้ง bm.el จาก MELPA
bm.el ให้ bm-toggle
เพื่อไฮไลต์และยกเลิกการไฮไลต์บรรทัดปัจจุบัน bm.el ยังมี bm-bookmark-regexp
ซึ่งเน้นเฉพาะบรรทัดที่ตรงกันเท่านั้น และคุณสามารถข้ามระหว่างบรรทัดที่ไฮไลต์ได้ bm-previous
และ bm-next
ต่อไปนี้คือการกำหนดค่าตัวอย่างของ bm.el
(require 'bm)
(global-set-key (kbd "<f5>") 'bm-toggle)
(global-set-key (kbd "<f6>") 'bm-previous)
(global-set-key (kbd "<f7>") 'bm-next)
(global-set-key (kbd "<f8>") 'bm-bookmark-regexp)
Bookmark+ ทำในสิ่งที่คุณขอ ใช้ C-x p RET
(โดยค่าเริ่มต้น) เพื่อตั้งค่าบุ๊กมาร์ก ณ จุดนั้น และคุณสามารถกำหนดค่าประเภทของการไฮไลต์ ที่คุณต้องการสำหรับบุ๊กมาร์กดังกล่าวได้ สิ่งนี้คล้ายกับสิ่งที่ bm.el
เสนอ (คำตอบของ syohex) แต่มีความยืดหยุ่นมากกว่า
M-x customize-group bookmark-plus
จากนั้นคลิก (เช่น คลิก) ลิงก์ Send Bug Report
ซึ่งจะช่วยคุณเตรียมอีเมลถึงฉัน ขอบคุณ.
- person Drew; 16.05.2019
highlight.el
- person artscan   schedule 22.01.2013