Làm cách nào để đặt màu rìa thành màu nền?


12

Tôi đang sử dụng chế độ không làm phiền, sử dụng các rìa khổng lồ để tập trung vào bộ đệm được gọi bzg-big-fringe-mode.

Vấn đề là, những đường diềm này thường có màu khác với nền tạo hiệu ứng thị giác xấu xí (xem hình ở cuối).

Tôi không gặp vấn đề với việc sửa lỗi này bằng cách đặt màu rìa thành màu nền, như vậy:

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

Vấn đề là, khi thay đổi chủ đề, màu sắc rìa vẫn là màu xám, mặc dù điều đó không có ý nghĩa đối với chủ đề mới.

Có cách nào để lập trình đặt rìa thành màu nền không?

Tôi đoán tôi cần hai điều:

  1. Khả năng đặt màu nền rìa thành màu nền mặc định.
  2. Một chức năng được nối để thay đổi chủ đề và đó là 1. ở trên.

Tôi nghĩ rằng tôi sẽ có thể làm 2) mặc dù tôi không có kỹ năng emacs, nhưng làm thế nào để tôi làm 1)?

Hay đây là một ý tưởng tồi vì một số lý do? Nếu vậy, một cách tiếp cận tốt hơn sẽ như thế nào?

nhập mô tả hình ảnh ở đây

Câu trả lời:


11

Cách chính thức sẽ là tùy chỉnh chủ đề trong câu hỏi để làm cho mặt rìa trông giống như mặt nền. Một thông số khuôn mặt dọc theo dòng (fringe :inherit default)nên làm thủ thuật.

Ngoài ra, bạn có thể sửa đổi nó một cách nhanh chóng bằng đoạn mã:

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

Vấn đề duy nhất còn lại sẽ là áp dụng nó cho mỗi thay đổi chủ đề. Tôi không thể tìm thấy bất kỳ cái móc nào trông giống như nó có thể làm công việc hơi buồn, defadvicedường như cũng không được thực hiện đúng. Ít nhất là không trong Emacs 24.4


Cảm ơn. Tôi sẽ đợi đến thứ Hai với việc chấp nhận trong trường hợp sb có giải pháp.
Mèo Unun

1
Có một lý do để không sử dụng face-backgroundface-foregroundtrong đoạn mã này?
Constantine

Không có, chỉnh sửa.
wasamasa

4

Bạn có thể đặt màu rìa thành không, trong trường hợp đó bạn không cần phải lo lắng về bất kỳ thay đổi chủ đề nào. Tôi đã có những điều sau đây trong cấu hình của mình:

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

Và rìa chỉ biến mất .... :)


0

Bằng cách nào đó 'fringeđã ngừng làm việc cho tôi, và bây giờ điều này:

(set-face-attribute 'linum nil :background "gray19")
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.