フリンジの色を背景色に設定するにはどうすればよいですか?


12

私は、巨大なフリンジを使用してと呼ばれるバッファーを中央に配置する、注意散漫のないモードを使用していますbzg-big-fringe-mode

問題は、これらのフリンジの色が背景と異なることが多く、見た目がeffectいことです(最後の図を参照)。

次のように、フリンジの色を背景色に設定することで、これを手動で修正しても問題はありません。

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

問題は、新しいテーマでは意味がなくても、テーマを変更するとフリンジの色が灰色のままになることです。

プログラムでフリンジを背景色に設定する方法はありますか?

次の2つが必要だと思います。

  1. フリンジ背景色をデフォルトの背景色に設定する機能。
  2. テーマの変更にフックされ、上記の1を行う関数。

私はemacsスキルを持っていなくても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適切に動作しないようです。少なくともEmacs 24.4にはない


ありがとう。sbに解決策がある場合は、月曜日まで受け入れます。
不愉快な猫14

1
このコードスニペットで使用face-backgroundしない理由はありface-foregroundますか?
コンスタンティン14

編集されていません。
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.