Як отримати лінійку модних режимів, яка використовує суцільні кольори та трикутники?


93

Люди періодично публікують скріншоти з моделями, які мають суцільні кольори та трикутники: введіть тут опис зображення

Як я повторюю цей ефект?


2
Мені насправді було задано це запитання кілька разів на інших сайтах, тож я подумав, що я теж превентивно його запитую тут :).
Тихон Єлвіс

1
Дивіться також whattheemacsd.com/appearance.el-01.html, щоб отримати поради щодо зміни тексту, а не лише зовнішнього вигляду, рядка режиму.
mankoff

Відповіді:


78

Цього можна досягти двома пакетами:

  1. смарт-режим-лінія .
  2. лінія електропередач .

В цілому, лінія розумного режиму є більш потужною, ніж лінія живлення (вибачте за каламбур), в тому сенсі, що вона пропонує більше функцій для управління поведінкою лінійки режимів і більше настроюваності зовнішнього вигляду. У Readme є чудовий перелік функцій , але коротше кажучи, він пропонує контроль ширини, заміну рядків у шляху до файлів, приховування другорядних режимів, серед іншого.

  • Якщо все, що ви хочете, - це зробити скріншот, найкращим вибором є електролінія .
  • Якщо ви хочете, щоб набір інших функцій у поєднанні з цим спробуйте, спробуйте смарт-режим .

Оскільки лінія електропередач була дуже добре пояснена в іншій відповіді, я зупинюсь на тому, як можна досягти такої появи за допомогою смарт-режиму.

Перша установка

Ви можете встановити лінію розумного режиму від Melpa, Melpa-Stable або завантажити її вручну. Якщо припустити, що ви вирішили використовувати менеджер пакунків, просто зробіть це

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

Щойно ви вмикаєте його M-x sml/setup, лінія вашого режиму повинна виглядати аналогічно одному з цих двох.
Скріншот темної теми Скріншот легкої теми

Тема електропередач

У рядку розумного режиму вбудовано кілька тем, та, яка домагається потрібного вигляду, надається окремо в themes/ каталозі. Зауважте, що ця тема все ще знаходиться в бета-версії, тому її налаштування може ще не працювати ідеально.

Встановіть тему від Melpa

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

Якщо ви хочете встановити його вручну, він знаходиться тут , але вам також знадобиться встановити лінію електропередач.

Нарешті можна ввімкнути тему M-x sml/apply-theme RET powerline. І ваша лінія режимів повинна виглядати приблизно так.
Знімок теми теми Powerline
Як бачите, порядок елементів не зовсім однаковий, але загальний вигляд є.

Щоб використовувати цю тему щоразу, додайте у свій файл init наступне. Ви також можете налаштувати будь-яку зі змінних конфігурації лінії живлення, і вони повинні мати однаковий ефект тут.

;; 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)

1
Я також писав про смарт-режим-рядок, але ви напевно пояснили краще. Дякую.
Boccaperta-IT

3
Ви можете також зупинитися на особливостях регулярних виразів , де шлях може бути представлений більш коротким набором символів ... :ED:замість того , щоб ~/.emacs.d/і rich-minorityприховати незначні режиму запальничок.
Каушал Моді

1
@kaushalmodi трохи розробив.
Малабарба

46

Цього можна досягти за допомогою пакету під назвою "powerline". Є кілька варіантів, включаючи принаймні один, який ви можете встановити package.el.

Особисто я цим користуюся . Ось скріншот із пакета README:

Приклад електропередач.

Ви можете налаштувати колір, встановивши обличчя рядка режиму:

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

Ви також можете налаштувати різні форми, а не просто трикутники:

(setq powerline-arrow-shape 'curve)

Лінія електропередач Emacs з кривими замість стрілок.


2
FWIW - Якщо у вас виникли проблеми з тим, щоб кольори роздільників були абсолютно не схожими на мене, я знайшов цю вилку електропередач, де ви можете, (setq powerline-default-separator 'utf-8)що дозволяє вам використовувати будь-який із шрифтів, закріплених на лінії електропередач, тут .
waymondo

@thepalmcivet: добре знати, але мені не зовсім зрозуміло, що ви маєте на увазі, отримуючи кольори безшовних. У вас є скріншот проблеми або щось таке? Дякую!
Тихон Єлвіс

2
Немає проблем, тут немає того, що я отримую з (setq powerline-default-separator 'arrow). Я встановлюю Carbon Emacs з Homebrew з --srgbпрапором і (setq ns-use-srgb-colorspace t)в своєму .emacs.d.
waymondo

Тіхон, це одна прекрасна лінія режиму, яка ти там є. Чи можете ви опублікувати розділ формату ліній у повному режимі, який ви частково створили на екрані? Спасибі :-)
Іван Вучиця

2
@ IvanVučica: Дякую! Це на GitHub, у двох частинах: модифікований powerline.el, який містить купу форм для вибору ( curveприємно, але я використовую diagonalзараз) і сам .emacs , який має дещо налаштування різного роду , який я десь отримав. Якщо ви настільки схильні, ви можете зробити власну копію powerline.elта додати свої власні форми роздільника за допомогою мистецтва ASCII, щоб отримати точний ефект, який вам потрібен :).
Тихон Єлвіс

12

Як згадували інші люди, powerline - це пакет, який формує моделін саме таким чином. Однак більшість тем emacs не визначають кольори для лінії живлення (що не чудово). Одна з важливих тем - це барвиста (і всеосяжна) мо-тема . У нього навіть є режим, який ввечері змінює колір, щоб було легше для очей. Це виглядає приблизно так:

moe-тема у славному пурпуровому режимі, тематизація силової лінії modeline

Мої стрілки в лінії електропередач виглядають дивно, тому що я використовую неперевершену версію шрифту Luxi Mono.


1

Мої стрілки в лінії електропередач виглядають дивно, тому що я використовую неперевершену версію шрифту Luxi Mono.

Вільям Ро , судячи з екрана, ви перебуваєте на macOS. Як зазначено в коментарі до цього питання , вам потрібно буде додати

(setq powerline-image-apple-rgb t)

до ваших файлів init. Це має виправити питання фарбування з роздільниками ("стрілками"). Принаймні для мене працювали.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.