TranslateProject/translated/tech/20151001 Powerline – Adds Powerful Statuslines and Prompts to Vim Editor and Bash Terminal.md
2017-01-13 09:24:55 +08:00

9.5 KiB
Raw Blame History

beyondworld 翻译中

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

Powerline是Vim editor中一个很好的状态行插件这个插件是使用Python开发的主要用于显示状态行和提示信息适用于很多软件比如bashzshtmux等。

Install Powerline Statuslines in Linux

Powerline使Linux终端更具威力

特色

  1. python编写使其更具扩展性且功能丰富
  2. 稳定易测的代码基础兼容python2.6+和python3
  3. 支持多种Linux版本及工具的提示和状态栏
  4. 通过JSON保存配置和颜色方案
  5. 快速、轻量级具有daemon支持提供更好的显示效果

Powerline截图效果

Powerline Vim Statuslines

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的方法

# apt-get install python-pip
示例输出
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Recommended packages:
python-dev-all python-wheel
The following NEW packages will be installed:
python-pip
0 upgraded, 1 newly installed, 0 to remove and 533 not upgraded.
Need to get 97.2 kB of archives.
After this operation, 477 kB of additional disk space will be used.
Get:1 http://archive.ubuntu.com/ubuntu/ trusty-updates/universe python-pip all 1.5.4-1ubuntu3 [97.2 kB]
Fetched 97.2 kB in 1s (73.0 kB/s)     
Selecting previously unselected package python-pip.
(Reading database ... 216258 files and directories currently installed.)
Preparing to unpack .../python-pip_1.5.4-1ubuntu3_all.deb ...
Unpacking python-pip (1.5.4-1ubuntu3) ...
Processing triggers for man-db (2.6.7.1-1ubuntu1) ...
Setting up python-pip (1.5.4-1ubuntu3) ...

在CentOSRHEL和Fedora中安装Pip

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

# yum install python-pip          
# dnf install python-pip                     [On Fedora 22+ versions]           
示例输出
Installing:
python-pip          noarch          7.1.0-1.el7             epel          1.5 M
Transaction Summary
=================================================================================
Install  1 Package
Total download size: 1.5 M
Installed size: 6.6 M
Is this ok [y/d/N]: y
Downloading packages:
python-pip-7.1.0-1.el7.noarch.rpm                         | 1.5 MB  00:00:01     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Installing : python-pip-7.1.0-1.el7.noarch                                 1/1 
Verifying  : python-pip-7.1.0-1.el7.noarch                                 1/1 
Installed:
python-pip.noarch 0:7.1.0-1.el7                                                
Complete!

第二步在Linux中安装Powerline

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

# apt-get install git
# yum install git
# dnf install git

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

# pip install git+git://github.com/Lokaltog/powerline
示例输出
 Cloning git://github.com/Lokaltog/powerline to /tmp/pip-WAlznH-build
Running setup.py (path:/tmp/pip-WAlznH-build/setup.py) egg_info for package from git+git://github.com/Lokaltog/powerline
warning: no previously-included files matching '*.pyc' found under directory 'powerline/bindings'
warning: no previously-included files matching '*.pyo' found under directory 'powerline/bindings'
Installing collected packages: powerline-status
Found existing installation: powerline-status 2.2
Uninstalling powerline-status:
Successfully uninstalled powerline-status
Running setup.py install for powerline-status
warning: no previously-included files matching '*.pyc' found under directory 'powerline/bindings'
warning: no previously-included files matching '*.pyo' found under directory 'powerline/bindings'
changing mode of build/scripts-2.7/powerline-lint from 644 to 755
changing mode of build/scripts-2.7/powerline-daemon from 644 to 755
changing mode of build/scripts-2.7/powerline-render from 644 to 755
changing mode of build/scripts-2.7/powerline-config from 644 to 755
changing mode of /usr/local/bin/powerline-config to 755
changing mode of /usr/local/bin/powerline-lint to 755
changing mode of /usr/local/bin/powerline-render to 755
changing mode of /usr/local/bin/powerline-daemon to 755
Successfully installed powerline-status
Cleaning up...

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

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

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

# 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或者你可以通过'xset q'命令找到一个有效的字体目录。

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

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

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

其次安装字体配置文件。

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

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

步骤4给Bash Shell和Vim状态行设置Powerline

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

export TERM=”screen-256color” 

打开Bash Shell中的Powerline

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

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

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

一旦找到powerline的真正位置后建议最好替换到下面的位置。

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

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

Bash Powerline Statuslines

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

如果远程Linux服务器上安装了powerline当你用ssh登录上去查看当前正在后台运行的任务时会看到主机名提示发生变化。

在Vim中打开Powerline

如果你喜欢使用vim正好有一个vim的强力插件。可以在~/.vimrc中添加如下内容打开该插件。

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

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

Vim Powerline Statuslines

总结

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


作者简介:

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


via: http://www.tecmint.com/powerline-adds-powerful-statuslines-and-prompts-to-vim-and-bash/

作者:Ravi Saive 译者:beyondworld 校对:校对者ID

本文由 LCTT 原创编译,Linux中国 荣誉推出