Powerline:给Vim和Bash提供更棒的状态行和提示信息

简介:

Powerline 是一个极棒的 Vim 编辑器的状态行插件,这个插件是使用 Python 开发的,主要用于显示状态行和提示信息,适用于很多软件,比如 bash、zsh、tmux 等等。

特色

  1. 使用 python 编写,使其更具扩展性且功能丰富
  2. 稳定易测的代码库,兼容 python 2.6+ 和 python 3
  3. 支持多种 Linux 功能及工具的提示和状态栏
  4. 通过 JSON 保存配置和颜色方案
  5. 快速、轻量级,具有后台守护进程支持,提供更佳的性能

Powerline 效果截图

Vim 中 Powerline 状态行效果

Vim 中 Powerline 状态行效果

在本文中,我会介绍如何安装 Powerline 及其字体,以及如何在 RedHat 和 Debian 类的系统中使 Bash 和 Vim 支持 Powerline。

第一步:准备好安装 Powerline 所需的软件

由于和其它无关项目之间存在命名冲突,因此 powerline 只能放在 PyPI(Python Package Index)中的 powerline-status 包下.

为了从 PyPI 中安装该包,需要先准备好 pip(该工具专门用于 Python 包的管理)工具。所以首先要在 Linux 系统下安装好 pip 工具。

在 Debian、Ubuntu 和 Linux Mint 中安装 pip

 
 
  1. # apt-get install python-pip 

示例输出:

 
 
  1. Reading package lists... Done 
  2. Building dependency tree        
  3. Reading state information... Done 
  4. Recommended packages: 
  5. python-dev-all python-wheel 
  6. The following NEW packages will be installed: 
  7. python-pip 
  8. 0 upgraded, 1 newly installed, 0 to remove and 533 not upgraded. 
  9. Need to get 97.2 kB of archives. 
  10. After this operation, 477 kB of additional disk space will be used. 
  11. Get:1 http://archive.ubuntu.com/ubuntu/ trusty-updates/universe python-pip all 1.5.4-1ubuntu3 [97.2 kB] 
  12. Fetched 97.2 kB in 1s (73.0 kB/s)      
  13. Selecting previously unselected package python-pip. 
  14. (Reading database ... 216258 files and directories currently installed.) 
  15. Preparing to unpack .../python-pip_1.5.4-1ubuntu3_all.deb ... 
  16. Unpacking python-pip (1.5.4-1ubuntu3) ... 
  17. Processing triggers for man-db (2.6.7.1-1ubuntu1) ... 
  18. Setting up python-pip (1.5.4-1ubuntu3) ... 

在 CentOS、RHEL 和 Fedora 中安装 pip

在 Fedora 类系统中,需要先打开 epel 仓库,然后按照如下方法安装 pip 包。

 
 
  1. # yum install python-pip           
  2. # dnf install python-pip                     [Fedora 22+ 以上]            

示例输出:

 
 
  1. Installing: 
  2. python-pip          noarch          7.1.0-1.el7             epel          1.5 M 
  3. Transaction Summary 
  4. ================================================================================= 
  5. Install  1 Package 
  6. Total download size: 1.5 M 
  7. Installed size: 6.6 M 
  8. Is this ok [y/d/N]: y 
  9. Downloading packages: 
  10. python-pip-7.1.0-1.el7.noarch.rpm                         | 1.5 MB  00:00:01      
  11. Running transaction check 
  12. Running transaction test 
  13. Transaction test succeeded 
  14. Running transaction 
  15. Installing : python-pip-7.1.0-1.el7.noarch                                 1/1  
  16. Verifying  : python-pip-7.1.0-1.el7.noarch                                 1/1  
  17. Installed: 
  18. python-pip.noarch 0:7.1.0-1.el7                                                 
  19. Complete! 

第二步:在 Linux 中安装 Powerline

现在可以从 Git 仓库中安装 Powerline 的最新开发版。在此之前系统需要安装好 Git 工具以便可以从仓库拉下代码。

 
 
  1. # apt-get install git 
  2. # yum install git 
  3. # dnf install git 

然后你可以通过 pip 命令安装 Powerline。

 
 
  1. # pip install git+git://github.com/powerline/powerline 

示例输出:

 
 
  1. Cloning git://github.com/powerline/powerline to /tmp/pip-WAlznH-build 
  2. Running setup.py (path:/tmp/pip-WAlznH-build/setup.py) egg_info for package from git+git://github.com/Lokaltog/powerline 
  3. warning: no previously-included files matching '*.pyc' found under directory 'powerline/bindings' 
  4. warning: no previously-included files matching '*.pyo' found under directory 'powerline/bindings' 
  5. Installing collected packages: powerline-status 
  6. Found existing installation: powerline-status 2.2 
  7. Uninstalling powerline-status: 
  8. Successfully uninstalled powerline-status 
  9. Running setup.py install for powerline-status 
  10. warning: no previously-included files matching '*.pyc' found under directory 'powerline/bindings' 
  11. warning: no previously-included files matching '*.pyo' found under directory 'powerline/bindings' 
  12. changing mode of build/scripts-2.7/powerline-lint from 644 to 755 
  13. changing mode of build/scripts-2.7/powerline-daemon from 644 to 755 
  14. changing mode of build/scripts-2.7/powerline-render from 644 to 755 
  15. changing mode of build/scripts-2.7/powerline-config from 644 to 755 
  16. changing mode of /usr/local/bin/powerline-config to 755 
  17. changing mode of /usr/local/bin/powerline-lint to 755 
  18. changing mode of /usr/local/bin/powerline-render to 755 
  19. changing mode of /usr/local/bin/powerline-daemon to 755 
  20. Successfully installed powerline-status 
  21. Cleaning up... 

第三步:在 Linux 中安装 Powerline 的字体

Powerline 使用特殊的符号来为开发者显示特殊的箭头效果和符号内容。因此你的系统中必须要有符号字体或者补丁过的字体。

通过下面的 wget 命令下载最新的系统字体及字体配置文件。

 
 
  1. # wget https://github.com/powerline/powerline/raw/develop/font/PowerlineSymbols.otf 
  2. # wget https://github.com/powerline/powerline/raw/develop/font/10-powerline-symbols.conf 

然后你将下载的字体放到字体目录下 /usr/share/fonts 或者 /usr/local/share/fonts,或者你可以通过 xset q 命令找到一个有效的字体目录。

 
 
  1. # mv PowerlineSymbols.otf /usr/share/fonts/ 

接下来你需要通过如下命令更新你系统的字体缓存。

 
 
  1. # fc-cache -vf /usr/share/fonts/ 

其次安装字体配置文件。

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

注意:如果相应的符号没有出现,可以尝试关闭终端会话并重启 X window,这样就会生效了。

第四步:给 Bash Shell 和 Vim 状态行设置 Powerline

在这一节将介绍 bash shell 和 vim 编辑器中关于 Powerline 的配置。首先通过在 ~/.bashrc 中添加如下内容以便设置终端为 256 色。

 
 
  1. export TERM="screen-256color" 

打开 Bash Shell 中的 Powerline

如果希望在 bash shell 中默认打开 Powerline,可以在 ~/.bashrc 中添加如下内容。

首先通过如下命令获取 powerline 的安装位置。

 
 
  1. # pip show powerline-status 
  2. Name: powerline-status 
  3. Version: 2.2.dev9999-git.aa33599e3fb363ab7f2744ce95b7c6465eef7f08 
  4. Location: /usr/local/lib/python2.7/dist-packages 
  5. Requires:  

一旦找到 powerline 的具体位置后,根据你系统的情况替换到下列行中的 /usr/local/lib/python2.7/dist-packages 对应的位置。

 
 
  1. powerline-daemon -q 
  2. POWERLINE_BASH_CONTINUATION=1 
  3. POWERLINE_BASH_SELECT=1 
  4. . /usr/local/lib/python2.7/dist-packages/powerline/bindings/bash/powerline.sh 

然后退出后重新登录,现在 powerline 的状态行应该如下显示了。

Bash Powerline Statuslines

Bash Powerline Statuslines

现在切换目录并注意显示你当前路径的面包屑导航提示的变化。

如果远程 Linux 服务器上安装了 powerline,你能看到后台挂起的任务,当你用 ssh 登录上去时,会看到该提示增加了主机名。

在 Vim 中打开 Powerline

如果你喜欢使用 vim,正好有一个 vim 的强力插件。可以在 ~/.vimrc 中添加如下内容打开该插件(LCTT 译注:注意同样需要根据你的系统情况修改路径)。

 
 
  1. set rtp+=/usr/local/lib/python2.7/dist-packages/powerline/bindings/vim/ 
  2. set laststatus=2 
  3. set t_Co=256 

然后你打开 vim 后会看到一个新的状态行:

Vim Powerline Statuslines

Vim Powerline Statuslines

总结

Powerline 可以在某些软件中提供颜色鲜艳、很优美的状态行及提示内容,这对编程环境有利。希望这篇指南对您有帮助,如果您需要帮助或者有任何好的想法,请留言给我。

作者简介:

作者

我是Ravi Saive,TecMint的作者。一个喜欢分享诀窍和想法的电脑极客及Linux专家。我的大部分服务都运行在开源平台Linux中。关注我的Twitter,Facebook和Google+。





作者:Ravi Saive
来源:51CTO
目录
相关文章
|
开发工具
如何在 Vim 中转到特定行?这个操作一定得会!
Vim 是一个强大的编辑器,当你在 Vim 中高效地完成工作时,你会感觉比任何人都强。
227 0
如何在 Vim 中转到特定行?这个操作一定得会!
|
Shell Linux 开发工具
centos7 -bash: vim: command not found
centos7 -bash: vim: command not found
181 0
|
开发工具
oeasy教您玩转vim - 10 - # 插入新行
oeasy教您玩转vim - 10 - # 插入新行
281 0
|
IDE Shell 开发工具
用Vim完成BashShell脚本编写(bash-support : Bash IDE)
作为一名运维工程师,BashShell脚本编写必不可少。然而,大家会发现专门用来编写BashShell脚本的IDE少之又少。
1456 0
|
测试技术 Shell 开发工具
|
Shell 开发工具 Linux