프린지 색상을 배경색으로 설정하려면 어떻게합니까?


12

나는 거대한 변두리를 사용하여라는 버퍼를 중앙에 집중시키는 산만없는 모드를 사용하고 있습니다 bzg-big-fringe-mode.

문제는 이러한 줄무늬가 종종 배경과 다른 색을 띠기 때문에보기 흉한 시각 효과를줍니다 (끝 그림 참조).

프린지 색상을 배경색으로 설정하여 수동으로 수정하는 데 문제가 없습니다.

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

문제는 테마를 변경할 때 프린지 색상이 새 테마에 맞지 않더라도 회색으로 유지된다는 것입니다.

프린지를 배경색으로 프로그래밍 방식으로 설정하는 방법이 있습니까?

두 가지가 필요하다고 생각합니다.

  1. 프린지 배경색을 기본 배경색으로 설정하는 기능.
  2. 테마를 변경하는 데 사용되며 위의 1. 기능입니다.

이맥스 기술이 없어도 2) 할 수 있어야한다고 생각하지만 어떻게 1)해야합니까?

아니면 어떤 이유로 나쁜 생각입니까? 그렇다면 더 나은 접근 방법은 무엇입니까?

여기에 이미지 설명을 입력하십시오

답변:


11

공식적인 방법은 프린지 얼굴을 배경 얼굴과 동일하게 보이도록 해당 테마를 사용자 정의하는 것입니다. 라인을 따라 얼굴 사양 (fringe :inherit default)은 트릭을 수행해야합니다.

또는 코드 스 니펫을 사용하여 즉시 수정할 수 있습니다.

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

남아있는 유일한 문제는 모든 테마 변경에 적용하는 것입니다. 나는 조금 슬픈 일을 할 수있는 것처럼 보이는 고리를 찾을 수 없으며, defadvice제대로 작동하지 않는 것 같습니다. 이맥스 24.4 이상


감사. sb에 해결책이있는 경우를 대비하여 월요일까지 기다릴 것입니다.
The Unfun Cat

1
사용하지 않는 이유가 거기 face-backgroundface-foreground이 코드의는?
Constantine

편집되지 않았습니다.
wasamasa

4

프린지 색상을 nil로 설정할 수 있으며,이 경우 테마 변경에 대해 걱정할 필요가 없습니다. 내 구성에 다음이 있습니다.

(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.