如何获得使用纯色和三角形的高级模式线?


93

人们偶尔会发布带有纯色和三角形的模式线的屏幕截图: 在此处输入图片说明

如何复制这种效果?


2
实际上,我已经在其他站点上被问过几次这个问题,所以我想我也很想在这里问这个问题:)。
Tikhon Jelvis

1
另请参阅whattheemacsd.com/appearance.el-01.html,以获取有关更改模式行文本(而不仅仅是外观)的提示。
mankoff 2014年

Answers:


78

这可以通过两个软件包来实现:

  1. 智能模式行
  2. 电力线

总体而言,智能模式线电源线 (请双关语)更强大,因为它提供了更多功能来控制模式线的行为以及外观上的更多可定制性。自述文件具有很多 功能,但简而言之,它提供宽度控制,文件路径中的字符串替换,隐藏次要模式等。

  • 如果您只想实现屏幕截图,那么电力线是最佳选择。
  • 如果您希望将其他功能组合在一起,请尝试使用智能模式线

由于电力线在另一个答案中得到了很好的解释,因此我将重点介绍如何使用智能模式线来实现该外观。

首次安装

您可以从Melpa,Melpa-Stable安装Smart-mode-line或手动下载它。假设您决定使用包管理器,只需执行

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

使用打开后M-x sml/setup,您的模式行应类似于这两者之一。
黑暗主题截图 浅色主题截图

电力线主题

smart-mode-line具有多个内置主题,可在themes/ 目录中单独提供实现所需外观的主题。请注意,该主题仍处于测试阶段,因此对其进行自定义可能还不能完美地起作用。

从Melpa安装主题

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

如果要手动安装,请 在此处,但是您还需要安装电力线。

最后,您可以使用打开主题M-x sml/apply-theme RET 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 2014年

3
您也可以阐述一下正则表达式的功能,其中的路径可以由一组短的字符来表示...... :ED:而不是~/.emacs.d/rich-minority隐藏辅助模式打火机。
Kaushal Modi 2014年

1
@kaushalmodi进行了详细说明。
马拉巴巴2014年

46

这可以通过称为“电力线”的软件包来实现。有几种可用的变体,包括至少一个可以通过安装的变体package.el

我个人使用这个。这是软件包自述文件的屏幕截图:

电力线示例。

您可以通过设置模式行的面来配置颜色:

(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 2014年

@thepalmcivet:很高兴知道,但我不清楚让颜色无缝的含义。您是否有问题截图或其他内容?谢谢!
Tikhon Jelvis

2
没问题,这就是我所得到(setq powerline-default-separator 'arrow)。我正在将带有Homebrew的Carbon Emacs与该--srgb标志一起安装(setq ns-use-srgb-colorspace t)在我的.emacs.d中。
waymondo 2014年

蒂洪,那是你那里的一条可爱的模式。您能否发布部分截图的完整模式行格式部分?谢谢:-)
伊万·武恰卡(IvanVučica)2015年

2
@IvanVučica:谢谢!它位于GitHub上,分为两部分:修改后的powerline.el,其中包含一堆形状可供选择(curve很好,但是我diagonal现在使用)和我的.emacs本身,其中有一些杂项设置。如果您愿意,可以制作自己的副本,powerline.el并通过ASCII艺术添加自己的分隔符形状,以获得所需的确切效果:)。
Tikhon Jelvis

12

正如其他人提到的那样,电力线是以这种方式格式化模型的软件包。但是,大多数emacs主题都没有为电力线定义颜色(这不是很好)。做到这一点的主题是丰富多彩(且全面)的moe主题。它甚至具有在晚上改变颜色以使眼睛更容易的模式。看起来像这样:

Moe主题,在华丽的洋红色模式下,以电力线模型为主题

电力线中的箭头看起来很奇怪,因为我使用的是未修补版本的Luxi Mono字体。


1

电力线中的箭头看起来很奇怪,因为我使用的是未修补版本的Luxi Mono字体。

William Roe,从您的屏幕截图来看,您使用的是macOS。如本期评论所述,您将需要添加

(setq powerline-image-apple-rgb t)

到您的初始化文件。这样可以纠正分隔符(“箭头”)的着色问题。至少为我工作。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.