ฉันต้องการใช้global-hl-line-mode
แต่ธีมของฉันบางหน้าไม่มีใบหน้าที่เน้นสีที่ดี มีวิธีทั่วไปในการกำหนดอย่างใดอย่างหนึ่ง (ที่ไม่ใช่สีผกผัน)? ฉันต้องการคงการเน้นไวยากรณ์ไว้ซึ่งทำให้ฉันขาดความพยายาม
ฉันต้องการใช้global-hl-line-mode
แต่ธีมของฉันบางหน้าไม่มีใบหน้าที่เน้นสีที่ดี มีวิธีทั่วไปในการกำหนดอย่างใดอย่างหนึ่ง (ที่ไม่ใช่สีผกผัน)? ฉันต้องการคงการเน้นไวยากรณ์ไว้ซึ่งทำให้ฉันขาดความพยายาม
คำตอบ:
นี่เป็นเรื่องของความเห็นจริง ๆ แต่ฉันพบเสมอว่าการทำให้hl-line
พื้นหลังมีสีเข้มขึ้นเล็กน้อยกว่าค่าเริ่มต้นจะดีที่สุด
ฉันต้องการคงการเน้นไวยากรณ์ไว้ซึ่งความพยายามของฉันแตก
หากคุณต้องการเน้นการเน้นไวยากรณ์ตรวจสอบให้แน่ใจว่าคุณลักษณะhl-line
ของใบหน้า:foreground
นั้นเป็นศูนย์จากนั้นตั้งค่า:background
แอตทริบิวต์เป็นสิ่งที่คุณต้องการ
นี่คือสิ่งที่ดูเหมือนกับฉันสำหรับการตั้งค่าเหล่านี้:
(set-face-attribute 'default nil :background "gray15")
(set-face-attribute 'hl-line nil :foreground nil :background "gray5")
ด้วยเสียงของมันคุณไม่ต้องการให้รหัสสีแข็งเพราะคุณจะเปลี่ยนธีม คุณสามารถมี emacs โดยอัตโนมัติตั้ง:background
ของhl-line
ใบหน้าที่จะสีเข้มกว่าเริ่มต้นปัจจุบันเล็กน้อย:background
เช่นนี้
(require 'color)
(defun set-hl-line-color-based-on-theme ()
"Sets the hl-line face to have no foregorund and a background
that is 10% darker than the default face's background."
(set-face-attribute 'hl-line nil
:foreground nil
:background (color-darken-name (face-background 'default) 10)))
(add-hook 'global-hl-line-mode-hook 'set-hl-line-color-based-on-theme)
วิธีนี้จะทำให้พื้นหลังของใบหน้าเป็นสีเข้มขึ้น 10% จากพื้นหลังเริ่มต้นเมื่อคุณเปิดใช้งาน global-hl-line-mode
global-hl-line-mode
? โดยสรุปโปรดระบุคำถามให้ชัดเจนยิ่งขึ้น - มันจะช่วยให้ผู้คนช่วยเหลือคุณ