天天看點

Powerline:給 Vim 和 Bash 提供更棒的狀态行和提示資訊

<a target="_blank"></a>

使用 python 編寫,使其更具擴充性且功能豐富

穩定易測的代碼庫,相容 python 2.6+ 和 python 3

支援多種 linux 功能及工具的提示和狀态欄

通過 json 儲存配置和顔色方案

快速、輕量級,具有背景守護程序支援,提供更佳的性能

Powerline:給 Vim 和 Bash 提供更棒的狀态行和提示資訊

vim 中 powerline 狀态行效果

在本文中,我會介紹如何安裝 powerline 及其字型,以及如何在 redhat 和 debian 類的系統中使 bash 和 vim 支援 powerline。

由于和其它無關項目之間存在命名沖突,是以 powerline 隻能放在 pypi(python package index)中的 <code>powerline-status</code> 包下.

為了從 pypi 中安裝該包,需要先準備好 <code>pip</code>(該工具專門用于 python 包的管理)工具。是以首先要在 linux 系統下安裝好 <code>pip</code> 工具。

<code># apt-get install python-pip</code>

示例輸出:

<code>reading package lists... done</code>

<code>building dependency tree</code>

<code>reading state information... done</code>

<code>recommended packages:</code>

<code>python-dev-all python-wheel</code>

<code>the following new packages will be installed:</code>

<code>python-pip</code>

<code>0 upgraded, 1 newly installed, 0 to remove and 533 not upgraded.</code>

<code>need to get 97.2 kb of archives.</code>

<code>after this operation, 477 kb of additional disk space will be used.</code>

<code>get:1 http://archive.ubuntu.com/ubuntu/ trusty-updates/universe python-pip all 1.5.4-1ubuntu3 [97.2 kb]</code>

<code>fetched 97.2 kb in 1s (73.0 kb/s)</code>

<code>selecting previously unselected package python-pip.</code>

<code>(reading database ... 216258 files and directories currently installed.)</code>

<code>preparing to unpack .../python-pip_1.5.4-1ubuntu3_all.deb ...</code>

<code>unpacking python-pip (1.5.4-1ubuntu3) ...</code>

<code>processing triggers for man-db (2.6.7.1-1ubuntu1) ...</code>

<code>setting up python-pip (1.5.4-1ubuntu3) ...</code>

<code># yum install python-pip</code>

<code># dnf install python-pip [fedora 22+ 以上]</code>

<code>installing:</code>

<code>python-pip noarch 7.1.0-1.el7 epel 1.5 m</code>

<code>transaction summary</code>

<code>=================================================================================</code>

<code>install 1 package</code>

<code>total download size: 1.5 m</code>

<code>installed size: 6.6 m</code>

<code>is this ok [y/d/n]: y</code>

<code>downloading packages:</code>

<code>python-pip-7.1.0-1.el7.noarch.rpm | 1.5 mb 00:00:01</code>

<code>running transaction check</code>

<code>running transaction test</code>

<code>transaction test succeeded</code>

<code>running transaction</code>

<code>installing : python-pip-7.1.0-1.el7.noarch 1/1</code>

<code>verifying : python-pip-7.1.0-1.el7.noarch 1/1</code>

<code>installed:</code>

<code>python-pip.noarch 0:7.1.0-1.el7</code>

<code>complete!</code>

現在可以從 git 倉庫中安裝 powerline 的最新開發版。在此之前系統需要安裝好 git 工具以便可以從倉庫拉下代碼。

<code># apt-get install git</code>

<code># yum install git</code>

<code># dnf install git</code>

然後你可以通過 <code>pip</code> 指令安裝 powerline。

<code># pip install git+git://github.com/powerline/powerline</code>

<code>cloning git://github.com/powerline/powerline to /tmp/pip-walznh-build</code>

<code>running setup.py (path:/tmp/pip-walznh-build/setup.py) egg_info for package from git+git://github.com/lokaltog/powerline</code>

<code>warning: no previously-included files matching '*.pyc' found under directory 'powerline/bindings'</code>

<code>warning: no previously-included files matching '*.pyo' found under directory 'powerline/bindings'</code>

<code>installing collected packages: powerline-status</code>

<code>found existing installation: powerline-status 2.2</code>

<code>uninstalling powerline-status:</code>

<code>successfully uninstalled powerline-status</code>

<code>running setup.py install for powerline-status</code>

<code>changing mode of build/scripts-2.7/powerline-lint from 644 to 755</code>

<code>changing mode of build/scripts-2.7/powerline-daemon from 644 to 755</code>

<code>changing mode of build/scripts-2.7/powerline-render from 644 to 755</code>

<code>changing mode of build/scripts-2.7/powerline-config from 644 to 755</code>

<code>changing mode of /usr/local/bin/powerline-config to 755</code>

<code>changing mode of /usr/local/bin/powerline-lint to 755</code>

<code>changing mode of /usr/local/bin/powerline-render to 755</code>

<code>changing mode of /usr/local/bin/powerline-daemon to 755</code>

<code>successfully installed powerline-status</code>

<code>cleaning up...</code>

powerline 使用特殊的符号來為開發者顯示特殊的箭頭效果和符号内容。是以你的系統中必須要有符号字型或者更新檔過的字型。

<code># wget https://github.com/powerline/powerline/raw/develop/font/powerlinesymbols.otf</code>

<code># wget https://github.com/powerline/powerline/raw/develop/font/10-powerline-symbols.conf</code>

然後你将下載下傳的字型放到字型目錄下 <code>/usr/share/fonts</code> 或者 <code>/usr/local/share/fonts</code>,或者你可以通過 <code>xset q</code> 指令找到一個有效的字型目錄。

<code># mv powerlinesymbols.otf /usr/share/fonts/</code>

接下來你需要通過如下指令更新你系統的字型緩存。

<code># fc-cache -vf /usr/share/fonts/</code>

其次安裝字型配置檔案。

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

注意:如果相應的符号沒有出現,可以嘗試關閉終端會話并重新開機 x window,這樣就會生效了。

在這一節将介紹 bash shell 和 vim 編輯器中關于 powerline 的配置。首先通過在 <code>~/.bashrc</code> 中添加如下内容以便設定終端為 256 色。

<code>export term="screen-256color"</code>

如果希望在 bash shell 中預設打開 powerline,可以在 <code>~/.bashrc</code> 中添加如下内容。

首先通過如下指令擷取 powerline 的安裝位置。

<code># pip show powerline-status</code>

<code>name: powerline-status</code>

<code>version: 2.2.dev9999-git.aa33599e3fb363ab7f2744ce95b7c6465eef7f08</code>

<code>location: /usr/local/lib/python2.7/dist-packages</code>

<code>requires:</code>

一旦找到 powerline 的具體位置後,根據你系統的情況替換到下列行中的<code>/usr/local/lib/python2.7/dist-packages</code> 對應的位置。

<code>powerline-daemon -q</code>

<code>powerline_bash_continuation=1</code>

<code>powerline_bash_select=1</code>

<code>. /usr/local/lib/python2.7/dist-packages/powerline/bindings/bash/powerline.sh</code>

然後退出後重新登入,現在 powerline 的狀态行應該如下顯示了。

Powerline:給 Vim 和 Bash 提供更棒的狀态行和提示資訊

bash powerline statuslines

現在切換目錄并注意顯示你目前路徑的面包屑導航提示的變化。

如果遠端 linux 伺服器上安裝了 powerline,你能看到背景挂起的任務,當你用 ssh 登入上去時,會看到該提示增加了主機名。

如果你喜歡使用 vim,正好有一個 vim 的強力插件。可以在 <code>~/.vimrc</code> 中添加如下内容打開該插件(lctt 譯注:注意同樣需要根據你的系統情況修改路徑)。

<code>set rtp+=/usr/local/lib/python2.7/dist-packages/powerline/bindings/vim/</code>

<code>set laststatus=2</code>

<code>set t_co=256</code>

然後你打開 vim 後會看到一個新的狀态行:

Powerline:給 Vim 和 Bash 提供更棒的狀态行和提示資訊

原文釋出時間為:2017-01-16

本文來自雲栖社群合作夥伴“linux中國”