Cara mendefinisikan wajah sorotan yang baik

9

Saya ingin menggunakan global-hl-line-mode, tetapi beberapa tema saya tidak memiliki highlight yang baik. Apakah ada cara umum untuk mendefinisikan satu (itu bukan warna terbalik)? Saya ingin mempertahankan penyorotan sintaksis, yang telah gagal dalam upaya saya.

maks
sumber
Apa sebenarnya yang Anda maksud dengan "cara mendefinisikan"? Apakah Anda bertanya tentang saran untuk penampilan? Tentang cara mendefinisikan wajah yang memberikan tampilan tertentu? Tentang cara membuat definisi wajah menggantikan efek definisi wajah tema? Sudahkah Anda mencoba menyesuaikan wajah yang digunakan oleh global-hl-line-mode? Singkatnya, harap tentukan pertanyaan lebih jelas - itu akan membantu orang membantu Anda.
Drew

Jawaban:

17

Ini benar-benar masalah pendapat, tetapi saya selalu menemukan bahwa membuat hl-linelatar belakang yang sedikit lebih gelap daripada standar adalah yang terbaik.

Saya ingin mempertahankan penyorotan sintaksis, yang telah gagal dalam upaya saya.

Jika Anda ingin mempertahankan penyorotan sintaks, pastikan bahwa atribut hl-linewajah :foregroundnihil, kemudian atur :backgroundatribut ke apa yang Anda inginkan.

Inilah yang terlihat bagi saya dengan pengaturan ini:

(set-face-attribute 'default nil :background "gray15")
(set-face-attribute 'hl-line nil :foreground nil :background "gray5")

masukkan deskripsi gambar di sini

Dengan suara itu, Anda tidak ingin warna kode keras karena Anda akan mengubah tema. Anda dapat memiliki emacs secara otomatis mengatur :backgrounddari hl-linewajah untuk warna yang sedikit lebih gelap dari default saat :backgroundseperti ini:

(require 'color)

(defun set-hl-line-color-based-on-theme ()
  "Sets the hl-line face to have no foregorund and a background
    that is 10% darker than the default face's background."
  (set-face-attribute 'hl-line nil
                      :foreground nil
                      :background (color-darken-name (face-background 'default) 10)))

(add-hook 'global-hl-line-mode-hook 'set-hl-line-color-based-on-theme)

Ini akan mengatur latar belakang wajah ke warna 10% lebih gelap dari latar belakang default kapan pun Anda mengaktifkan global-hl-line-mode

Jordon Biondo
sumber