Как получить модную линию, которая использует сплошные цвета и треугольники?

94

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

Как мне повторить этот эффект?

Тихон Джелвис
источник
2
На самом деле мне задавали этот вопрос несколько раз на других сайтах, поэтому я решил, что я тоже предпочитаю задать его здесь :).
Тихон Джелвис
1
См. Также whattheemacsd.com/appearance.el-01.html для получения советов по изменению текста, а не только внешнего вида строки режима.
mankoff

Ответы:

79

Это может быть достигнуто с двумя пакетами:

  1. smart-mode-line .
  2. линия электропередач .

В целом, smart-mode-line более мощная, чем powerline (простите за каламбур), в том смысле, что она предлагает больше функций для управления поведением mode-line и большую настраиваемость внешнего вида. Файл Readme имеет большой список функций , но вкратце он предлагает управление шириной, замену строк в пути к файлу, скрытие второстепенных режимов, среди прочего.

  • Если все, что вам нужно, это сделать снимок экрана, Powerline - лучший выбор.
  • Если вам нужен набор других функций в сочетании с этим, попробуйте smart-mode-line .

Поскольку Powerline очень хорошо объяснил другой ответ, я сосредоточусь на том, как вы можете добиться этого внешнего вида с помощью smart-mode-line.

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

Вы можете установить smart-mode-line от Melpa, Melpa-Stable или загрузить его вручную. Предполагая, что вы решили использовать менеджер пакетов, просто сделайте

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

Как только вы включите его M-x sml/setup, ваша строка режима должна выглядеть примерно так же, как одна из этих двух.
Скриншот Dark Theme Скриншот Light Theme

Тема Powerline

В smart-mode-line встроено несколько тем, та, которая обеспечивает требуемый внешний вид, предоставляется отдельно в themes/ каталоге. Обратите внимание, что эта тема все еще находится в бета-версии, поэтому ее настройка может пока не работать идеально.

Установить тему от Melpa

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

Если вы хотите установить его вручную, он здесь , но вам также необходимо установить Powerline.

Наконец, вы можете включить тему с M-x sml/apply-theme RET powerline. И ваша мод-строка должна выглядеть следующим образом.
Скриншот темы Powerline
Как вы можете видеть, порядок элементов не совсем одинаков, но общий внешний вид налицо.

Чтобы использовать эту тему каждый раз, добавьте следующее в файл инициализации. Вы также можете настроить любую переменную конфигурации Powerline, и они должны иметь такой же эффект здесь.

;; 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
источник
1
Я также писал о smart-mode-line, но вы наверняка объяснили лучше. Спасибо.
Boccaperta-IT
3
Вы также можете уточнить функции регулярного выражения, в которых путь может быть представлен более коротким набором символов ... :ED:вместо ~/.emacs.d/и, rich-minorityчтобы скрыть зажигалки второстепенного режима.
Каушал Моди
1
@kaushalmodi разработал немного.
Малабарба
46

Это может быть достигнуто с помощью пакета под названием «Powerline». Доступно несколько вариантов, включая как минимум один, через который вы можете установить package.el.

Лично я этим пользуюсь . Вот скриншот из пакета README:

Пример Powerline.

Вы можете настроить цвет, установив грань мод-линии:

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

Вы также можете настроить различные формы, а не только треугольники:

(setq powerline-arrow-shape 'curve)

Emacs Powerline с кривыми вместо стрелок.

Тихон Джелвис
источник
2
FWIW - Если у вас есть проблема с тем, чтобы цвета разделителей казались совершенно безразличными, как я, я нашел эту вилку Powerline, где вы можете (setq powerline-default-separator 'utf-8)использовать любой из исправленных шрифтов Powerline здесь .
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 , который имеет некоторые настройки misc, которые я где-то получил. Если вы так склонны, вы можете сделать свою собственную копию powerline.elи добавить свои собственные формы-разделители через ASCII-арт, чтобы получить именно тот эффект, который вам нужен :).
Тихон Джелвис
12

Как уже упоминали другие люди, Powerline - это пакет, который форматирует модельный ряд таким образом. Однако большинство тем emacs не определяют цвета для powerline (что не очень хорошо). Одна тема, которая делает, является красочной (и всесторонней) темой moe . У него даже есть режим, который меняет цвет вечером, чтобы облегчить глаза. Это выглядит так:

Мо-тема в великолепном пурпурном режиме, тематическая линия электропередачи

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

Уильям Роу
источник
1

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

Уильям Роу , судя по твоему скриншоту, ты на macOS. Как указано в комментарии к этому вопросу , вам нужно будет добавить

(setq powerline-image-apple-rgb t)

в ваши файлы инициализации. Это должно исправить проблему окраски с разделителями («стрелки»). Работал на меня по крайней мере.


источник