Powerline可用来强化状态栏的显示信息,可作用于bash、vim、tmux等多种软件,基于python实现,使用json配置文件进行管理,具有很强的扩展性。

一、linux安装Powerline强化Vim状态栏方法

1.1 安装Powerline

Powerline与其它linux项目之间存在命名冲突,因此常将Powerline放在 PyPI (Python Package Index) 中的 powerline-status 包下。

为了从PyPI中安装powerline-status包,首先需要安装专用于Python包的管理pip工具和git,然后使用 pip insall 命令在线安装Powerline。

在Debian、Ubuntu和Linux Mint中安装Powerline的命令如下:

1
2
apt-get install python-pip git '安装pip和git'
pip install git+git://github.com/powerline/powerline '从github安装Powerline'

1.2 安装Powerline的字体

Powerline显示的一些特殊箭头效果和符号内容要求操作系统有对应符号字体,因此需要安装Powerline所需字体。

首先,通过下面的wget命令下载最新的系统字体和字体配置文件:

1
2
wget https://github.com/powerline/powerline/raw/develop/font/PowerlineSymbols.otf '下载字体文件'
wget https://github.com/powerline/powerline/raw/develop/font/10-powerline-symbols.conf '下载字体配置文件'

然后,将下载的字体放到字体目录 /usr/share/fonts 或者 /usr/local/share/fonts, 通过如下命令更新系统的字体缓存:

1
fc-cache -vf /usr/share/fonts/ '更新字体缓存'

最后,将下载的字体配置文件 10-powerline-symbols.conf 移动到目录 /etc/fonts/conf.d/,完成字体配置文件的安装。

1
mv 10-powerline-symbols.conf /etc/fonts/conf.d/

1.3 Vim使用Powerline

Vim配置文件.vimrc中添加如下配置可打开Powerline插件在Vim中的使用。

1
2
3
4
5
set rtp+=/usr/local/lib/python2.7/dist-packages/powerline/bindings/vim/ 'powerline的安装路径,可能需要自行调整'
set laststatus=2 '设置vim状态栏数量为2,用于显示powerline的内容'
set showtabline=2 '始终显示窗口上头的tabline'
set noshowmode 'Hide the default mode text (e.g. -- INSERT -- below the statusline)'
set t_Co=256

二、Powerline配置介绍

Powerline的配置文件包括主配置文件 config.json 以及各主题(如shell、tmux、vim等)和颜色方案的配置文件,其目录结构如下所示:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
.
├── colorschemes
│   ├── default.json
│   ├── ......
│   ├── shell
│   │   ├── default.json
│   │   ├── __main__.json
│   │   └── solarized.json
│   ├── solarized.json
│   ├── tmux
│   │   ├── default.json
│   │   └── solarized.json
│   └── vim
│   ├── default.json
│   ├── __main__.json
│   ├── solarized.json
│   └── solarizedlight.json
├── colors.json
├── config.json
└── themes
├── ascii.json
├── ......
├── powerline.json
├── powerline_terminus.json
├── powerline_unicode7.json
├── shell
│   ├── continuation.json
│   ├── default.json
│   ├── default_leftonly.json
│   ├── __main__.json
│   └── select.json
├── tmux
│   └── default.json
├── unicode.json
├── unicode_terminus_condensed.json
├── unicode_terminus.json
├── vim
│   ├── cmdwin.json
│   ├── default.json
│   ├── help.json
│   ├── __main__.json
│   ├── plugin_commandt.json
│   ├── plugin_gundo.json
│   ├── plugin_gundo-preview.json
│   ├── plugin_nerdtree.json
│   ├── quickfix.json
│   └── tabline.json
└── ......

Powerline在状态栏显示的每一个栏目项称之为一个 segment,对应配置文件 *.json 描述了各segment的位置和外观等信息。

例如,Vim下的Powerline配置文件内容如下所示,从中可以看出左右两侧各 segment 所配置展示的具体信息,如mode (Vim当前所处模式)、paste_indicator (Vim粘贴模式指示器)等。

vim-powerline效果图

配置文件中的 priority 选项表明该segment在状态栏长度不够显示所有内容时被展示出来的优先级,值越大,优先级越小,该segment越容易被从状态栏中移除。

三、Vim状态栏显示git信息

介绍Vim插件 powerline-gitstatus 来扩展Powerline的状态栏展示能力。

powerline-gitstatus 是一个用来展示git工作状态信息的Powerline segment ( A Powerline segment for showing the status of a Git working copy),可在Vim的状态栏实时显示git仓库的各种状态信息,可通过以下命令安装:

1
pip install powerline-gitstatus

然后在Vim下的Powerline配置文件 themes/vim/default.json 中增加以下的segment配置信息就可以打开powerline-gitstatus。

1
2
3
4
{
"function": "powerline_gitstatus.gitstatus",
"priority": 40
}

powerline-gitstatus在Vim中的显示效果如下图所示。
powerline-gitstatus截图

嗯,扫一扫就可以找到小女子我啦~