Bagaimana cara mendapatkan garis mode yang lebih bagus yang menggunakan warna solid dan segitiga?

93

Orang-orang kadang-kadang memposting tangkapan layar dengan modelines yang memiliki warna solid dan segitiga: masukkan deskripsi gambar di sini

Bagaimana cara meniru efek ini?

Tikhon Jelvis
sumber
2
Saya sebenarnya pernah ditanya pertanyaan ini beberapa kali di situs lain, jadi saya pikir saya akan bertanya terlebih dahulu di sini juga :).
Tikhon Jelvis
1
Lihat juga whattheemacsd.com/appearance.el-01.html untuk kiat mengubah teks, bukan hanya tampilan, dari mode-line.
mankoff

Jawaban:

78

Ini dapat dicapai dengan dua paket:

  1. smart-mode-line .
  2. kabel listrik .

Secara keseluruhan, smart-mode-line lebih kuat daripada powerline (maafkan kata-katanya), dalam arti ia menawarkan lebih banyak fitur untuk mengontrol perilaku mode-line dan lebih dapat disesuaikan dalam penampilan. Readme memiliki daftar fitur yang hebat , tetapi singkatnya ia menawarkan kontrol lebar, penggantian string di jalur file, menyembunyikan mode minor, antara lain.

  • Jika semua yang Anda inginkan adalah mencapai tangkapan layar, powerline adalah pilihan terbaik.
  • Jika Anda menginginkan serangkaian fitur lain yang dipadukan dengan itu, cobalah smart-mode-line .

Karena powerline telah dijelaskan dengan sangat baik pada jawaban lain, saya akan fokus pada bagaimana Anda dapat mencapai penampilan itu dengan smart-mode-line.

Instal Pertama

Anda dapat menginstal smart-mode-line dari Melpa, Melpa-Stable, atau mengunduhnya secara manual. Dengan asumsi Anda memutuskan untuk menggunakan manajer paket, lakukan saja

M-x package-install RET smart-mode-line

Setelah Anda menyalakannya M-x sml/setup, garis mode Anda akan terlihat mirip dengan salah satu dari dua ini.
Screenshot Tema Gelap Tangkapan Layar Tema Ringan

Tema Powerline

smart-mode-line memiliki beberapa tema bawaan, tema yang mencapai tampilan yang diminta disediakan secara terpisah di themes/ direktori. Perhatikan bahwa tema ini masih dalam versi beta, jadi menyesuaikannya mungkin belum berfungsi dengan sempurna.

Instal tema dari Melpa

M-x package-install RET smart-mode-line-powerline-theme

Jika Anda ingin menginstalnya secara manual, ada di sini , tetapi Anda juga harus menginstal kabel listrik.

Akhirnya Anda dapat menghidupkan tema dengan M-x sml/apply-theme RET powerline. Dan garis mode Anda akan terlihat seperti ini.
Screenshot Tema Powerline
Seperti yang Anda lihat, urutan elemen tidak persis sama, tetapi keseluruhan penampilan ada di sana.

Untuk menggunakan tema ini setiap saat, tambahkan berikut ini ke file init Anda. Anda juga dapat menyesuaikan variabel konfigurasi powerline mana saja, dan mereka akan memiliki efek yang sama di sini.

;; These two lines are just examples
(setq powerline-arrow-shape 'curve)
(setq powerline-default-separator-dir '(right . left))
;; These two lines you really need.
(setq sml/theme 'powerline)
(sml/setup)
Malabarba
sumber
1
Saya juga sedang menulis tentang mode-pintar-line, tetapi Anda pasti menjelaskan lebih baik Terima kasih.
Boccaperta-IT
3
Anda juga dapat menguraikan fitur regexp di mana jalur dapat diwakili oleh serangkaian karakter yang lebih pendek ... :ED:alih-alih ~/.emacs.d/dan rich-minorityuntuk menyembunyikan pemantik mode minor.
Kaushal Modi
1
@kaushalmodi diuraikan sedikit.
Malabarba
46

Ini dapat dicapai dengan paket yang disebut "powerline". Ada beberapa varian yang tersedia, termasuk setidaknya satu yang dapat Anda instal package.el.

Secara pribadi, saya menggunakan yang ini . Berikut screenshot dari README paket:

Contoh kabel listrik.

Anda dapat mengkonfigurasi warna dengan mengatur wajah dari mode-line:

(set-face-attribute 'mode-line nil
                    :foreground "Black"
                    :background "DarkOrange"
                    :box nil)

Anda juga dapat mengonfigurasi berbagai bentuk, bukan hanya segitiga:

(setq powerline-arrow-shape 'curve)

Powerline Emacs dengan kurva bukan panah.

Tikhon Jelvis
sumber
2
FWIW - Jika Anda memiliki masalah dalam mendapatkan warna separator menjadi benar-benar tampak seperti yang saya lakukan, saya menemukan garpu powerline ini di mana Anda dapat (setq powerline-default-separator 'utf-8)yang memungkinkan Anda untuk menggunakan font powerline yang ditambal di sini .
waymondo
@ thepalmcivet: baik untuk diketahui, tapi saya tidak sepenuhnya jelas apa yang Anda maksud dengan mendapatkan warna yang mulus. Apakah Anda memiliki tangkapan layar masalah atau sesuatu? Terima kasih!
Tikhon Jelvis
2
Tidak masalah, inilah yang saya dapatkan dengan (setq powerline-default-separator 'arrow). Saya menginstal Carbon Emacs dengan Homebrew dengan --srgbbendera dan (setq ns-use-srgb-colorspace t)di .emacs.d saya.
waymondo
Tikhon, itu satu garis mode indah yang Anda miliki di sana. Bisakah Anda memposting bagian mode-line-format penuh yang sebagian layar Anda sembunyikan? Terima kasih :-)
Ivan Vučica
2
@ IvanVučica: Terima kasih! Ada di GitHub, dalam dua bagian: powerline.el yang dimodifikasi yang berisi banyak bentuk untuk dipilih ( curvebagus, tapi saya gunakan diagonalsekarang) dan .emacs saya sendiri, yang memiliki beberapa pengaturan misc yang saya dapatkan di suatu tempat. Jika Anda cenderung, Anda dapat membuat salinan Anda sendiri powerline.eldan menambahkan bentuk pemisah Anda sendiri melalui seni ASCII untuk mendapatkan efek yang tepat yang Anda butuhkan :).
Tikhon Jelvis
12

Seperti yang orang lain katakan, powerline adalah paket yang memformat modeline seperti itu. Namun sebagian besar tema emacs, tidak mendefinisikan warna untuk kabel listrik (yang tidak bagus). Salah satu tema yang dilakukan adalah moe-tema penuh warna (dan komprehensif) . Ia bahkan memiliki mode yang berubah warna di malam hari agar lebih mudah di mata. Ini terlihat seperti ini:

tema moe dalam mode magenta yang mulia, dengan tema powerline modeline

Panah saya di powerline terlihat aneh karena saya menggunakan versi Luxi Mono yang tidak ditambal.

William Roe
sumber
1

Panah saya di powerline terlihat aneh karena saya menggunakan versi Luxi Mono yang tidak ditambal.

William Roe , menilai dari tangkapan layar Anda, Anda menggunakan MacOS. Seperti yang dinyatakan dalam komentar masalah ini , Anda harus menambahkan

(setq powerline-image-apple-rgb t)

ke file init Anda Ini harus memperbaiki masalah pewarnaan dengan pemisah ("panah"). Paling tidak bekerja untukku.


sumber