ฉันจะตั้งค่าสีขอบให้เป็นสีพื้นหลังได้อย่างไร


12

bzg-big-fringe-modeผมใช้โหมดฟุ้งซ่านฟรีที่ใช้ขอบยักษ์ไปยังศูนย์บัฟเฟอร์ที่เรียกว่า

ปัญหาคือขอบเหล่านี้มักจะมีสีที่แตกต่างจากพื้นหลังซึ่งให้เอฟเฟกต์น่าเกลียด (ดูภาพที่ท้าย)

ฉันไม่มีปัญหาในการแก้ไขด้วยตนเองโดยตั้งค่าสีขอบเป็นสีพื้นหลังเช่น:

(set-face-attribute 'fringe nil :background "#3F3F3F" :foreground "#3F3F3F")

ปัญหาคือเมื่อเปลี่ยนชุดรูปแบบสีขอบจะเป็นสีเทาแม้ว่าจะไม่เหมาะสมสำหรับชุดรูปแบบใหม่

มีวิธีการตั้งค่าขอบสีโปรแกรมพื้นหลังโดยทางโปรแกรมหรือไม่?

ฉันคิดว่าฉันต้องการสองสิ่ง:

  1. ความสามารถในการตั้งค่าสีพื้นหลังของขอบเป็นสีพื้นหลังเริ่มต้น
  2. ฟังก์ชั่นที่ติดกับการเปลี่ยนธีมและนั่นคือ 1. ด้านบน

ฉันคิดว่าฉันควรจะสามารถทำ 2) แม้ว่าฉันจะไม่มีทักษะ emacs แต่ฉันจะทำ 1)

หรือเป็นความคิดที่ไม่ดีด้วยเหตุผลบางอย่าง? ถ้าเป็นเช่นนั้นวิธีการที่ดีกว่าจะมีลักษณะอย่างไร

ป้อนคำอธิบายรูปภาพที่นี่

คำตอบ:


11

วิธีที่เป็นทางการจะปรับแต่งชุดรูปแบบที่เป็นปัญหาเพื่อให้ใบหน้าของชายขอบนั้นดูเหมือนกับพื้นหลัง ข้อมูลจำเพาะใบหน้าตามแนวของ(fringe :inherit default)ควรทำเคล็ดลับ

หรือคุณสามารถแก้ไขได้ทันทีโดยใช้ข้อมูลโค้ด:

(defun my-tone-down-fringes ()
  (set-face-attribute 'fringe nil
                      :foreground (face-foreground 'default)
                      :background (face-background 'default)))

ปัญหาเดียวที่เหลือจะนำไปใช้กับการเปลี่ยนแปลงทุกชุดรูปแบบ ฉันไม่สามารถหาเบ็ดใด ๆ ที่ดูเหมือนว่ามันสามารถทำงานได้ซึ่งเป็นเรื่องน่าเศร้าเล็กน้อยdefadviceดูเหมือนว่าจะไม่ได้ผลอย่างเหมาะสม อย่างน้อยไม่ได้อยู่ใน Emacs 24.4


ขอบคุณ ฉันจะรอจนถึงวันจันทร์ด้วยการยอมรับในกรณีที่ sb มีทางออก
แมว Unfun

1
มีเหตุผลที่จะไม่ใช้face-backgroundและface-foregroundในข้อมูลโค้ดนี้หรือไม่
Constantine

ไม่มีการแก้ไข
wasamasa

6

คุณสามารถตั้งค่าสีขอบเป็นศูนย์ซึ่งในกรณีนี้คุณไม่จำเป็นต้องกังวลเกี่ยวกับการเปลี่ยนแปลงของธีม ฉันได้รับสิ่งต่อไปนี้ในการกำหนดค่าของฉัน:

(set-face-attribute 'fringe nil :background nil)

และขอบเพิ่งหายไป .... :)


0

ยังไง'fringeก็หยุดทำงานให้ฉันและตอนนี้สิ่งนี้จะ:

(set-face-attribute 'linum nil :background "gray19")
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.