Лінія падсвятленне перакрэсліла падсвятленне сінтаксісу

I use hl-line-mode and I really like the built-in misterioso theme. However, the way that lines are highlighted with this theme cancels out syntax highlighting or any other properties of the highlighted lines, as can be seen in this screenshot. enter image description here

Як я магу захаваць вылучэнне тых жа колераў, але пазбегнуць утойвання ўласцівасці асобы з вылучанага тэксту? Я быў бы гатовы пайсці на кампраміс і пры неабходнасці змяніць колер, але гэта, здаецца, не будзе праблемай. Я паспрабаваў змяніць колер, але ўсё-ткі атрымаць той жа эфект. Я таксама паспрабаваў гэтае рашэнне , але толькі ўдалося пазбавіцца ад падсвятлення наогул.

This question seems to be the same or similar to mine, but I am honestly not sure if it is the same. I tried the solution suggested there but couldn't get it to work. Rather than having a discussion in the comments of that question, I thought I would ask a new one, but my feelings will not be hurt if this gets marked as duplicate.

5
@PythonNut: Здаецца, тое ж пытанне мне, ці з'яўляецца ён або заднім планам. Я б сказаў, што вы павінны разгледзець пытанне аб даданні свой адказ на гэтае пытанне (падпампоўка пярэдняга плана і фону), і гэта адзін павінен быць зачынены ў двух асобніках. Але гэта адна можа быць выказана больш выразна - не ўпэўнены, што гэта больш кошерных ў такім выпадку.
дададзена аўтар Ryan Eastabrook, крыніца
Я не думаю, што пытанне, які вы спасылку на дублікат, таму што яна мае справу з пераазначэннем фону, у той час як вы маеце справу з пераазначэннем на пярэднім плане.
дададзена аўтар PythonNut, крыніца

1 адказы

У асноўным, гекталітраў радок Твар з'яўляецца вызначэнне : пярэдні плана ўласцівасць, якое перавызначаем іншыя колеры пярэдняга плана ў вашай тэме.

misterioso defines hl-line in terms of highlight using inheritance, and because of an awkward issue (which I asked about here), it's not possible AFAIK to directly inherit from a face, and override one of the properties to be unset.

Таму замест таго, вам трэба нешта накшталт гэтага:

(set-face-attribute 'hl-line nil
                    :inherit nil
                    :background (face-background 'highlight))

Гэта не можа быць гэтак жа чыстым, як гіпатэтычнае рашэнне, якія маглі б захаваць спадчыну, але гэта працуе.


Як адзначыў Стэфан іншае рашэнне было б выдаліць пярэдні план з вылучыць твар, якое б вырашыць гэтую праблему для іншых тыпаў асноўных момантаў, а таксама.

(set-face-foreground 'highlight nil)
5
дададзена
Лепшае рашэнне, верагодна, змяніць блік асоба не ўказваць якой-небудзь пярэдні план.
дададзена аўтар sds, крыніца
Абодва гэтыя рашэнні, падобна, не працуе пры запуску Emacs ў рэжыме X (GUI), але працуюць добра ў -NW .
дададзена аўтар user1477388, крыніца