Make Terminal Powerful with Powerline for Mac | 用 Powerline 為 Terminal 點綴

黃士軒
TheHenrysTime
Published in
7 min readJul 3, 2017

“ 快為 Terminal 換上華麗的 Powerline 命令列吧 ”

如果你有資訊工程的背景,想必對Shell命令列多少有些認識,尤其是在電影或是現實生活中的駭客的電腦上,一定會有一個終端機介面在螢幕上,然而多數人的打開自己的 Terminal 會發現怎麼跟想像中的差好多,電影中的終端機都有很炫麗的介面,我的為什麼只有白底黑字呢?別擔心,本篇就為你一一解密。

其實說穿了就是安裝了一些輔助工具,讓 Terminal 變得更好用。Powerline 就是其中一個讓 Terminal 變得人性化的的小工具,透過它讓你在 Terminal 顯示各式各樣重要資訊在 Command Line 上。網路上有很多 Powerline 的安裝教學,但是有些方法在安裝的時候常常會遇到一些的問題,所以以下整理最簡單保險的安裝方式,讓你也能體驗 Poweline 的魅力。

1. 確認 Python

$ python -V
Python 2.7.x

如果出現 Python 2.7.x 就代表已經有Python,如果沒有顯示的話就要先安裝 brew 工具(請到brew官網上安裝),再透過 brew 安裝 Python

$ brew install python

2. 安裝 Pip 與 Powerline-status

如果沒有用過 Pip,先用下面的指令進行安裝

$ sudo easy_install pip

接下來就可以開始安裝 Powerline 了,透過 pip 為我們把 Powerline-status 安裝到使用者目錄中

$ pip install --user powerline-status

如果在執行段落的最後一行顯示 Successfully installed … ,就代表 Powerline 已經安裝成功囉

3. 安裝 Powerline 字型

因為 Powerline 需要特殊的字型,所以要先安裝字體,不然換上 Powerline 後會顯示成亂碼,只要找著下面的指令逐行執行就好囉(如果安裝遇到問題可以參考官方Git)

$ git clone https://github.com/powerline/fonts.git
$ cd fonts
$ ./install.sh
$ cd ..
$ rm -rf fonts

4. 為 Shell 狀態列換上 Powerline

首先查看 pip 將 powerline 安裝到哪個路徑,輸入下列指令,就會顯示出powerline 套件的相關資訊

$ pip show powerline-status

記住 Location: 資訊,以上圖為例就是(為避免搞混,以下會以{Path}替代)
/Users/Henry/Library/Python/2.7/lib/python/site-package
接著,到這個路徑檢查 powerline 所有的套件是否都在

$ cd {Path}
$ ls

理論上要有3個檔案 powerline, powerline_status-2.6.dist-info 與 scripts,但大多數人在安裝的時後 scripts 都會跑到別的地方去,像下圖一樣。別慌,他其實只是跑到 python 的 bin 目錄底下,把他抓回來就好了

下面的指令將會創建一個 scripts 的資料夾,然後把 bin 目錄底下的檔案移過來,注意 {Path} 要換成剛剛記錄下的 Location,如下圖

$ cd {path}
$ mkdir scripts
$ mv ../../../bin/* ./scripts/

接著,用下面指令開啟.bash_profile 把 Powerline 設定放上去(如果你之前已經有bash的設定檔,像是.bashrc等,就把設定放入原本使用的檔案即可)

$ vim ~/.bash_profile

在 bash_profile 的文件中放入下列設定,注意 {Path}需要替換

POWERLINE_PATH={Path}
POWERLINE_SCRIPT=$POWERLINE_PATH/powerline/bindings/bash/powerline.sh
if [ -f $POWERLINE_SCRIPT ]; then
$POWERLINE_PATH/scripts/powerline-daemon -q
source $POWERLINE_SCRIPT
fi

儲存 bash_profile,輸入$ exec bash -l 或是重新開啟 Terminal 就會出現 Powerline 的命令列,但是會出現亂碼,像下圖一樣

別慌,還記得剛剛說的字體嗎?這時候我們到 Terminal 的 Preference 裡面把字體改成 powerline 的專屬字體,點進字體只要看到後面寫 for Powerline的都可以選擇,下圖我選擇的是 Mesio LG M DZ Regular for Powerline

選擇完了之後再看看 Terminal ,大功告成了(撒花)

但你應該會納悶,為什麼我的 Terminal 跟圖片上的長得不太一樣呢?這是因為 Powerline 也可以換主題進行客製化,只要照著下面的三行指令就可以自己設定樣式({path} 要替換)

$ mkdir -p ~/.config/powerline/themes/shell 
$ cp {path}/powerline/config_files/themes/shell/default.json ~/.config/powerline/themes/shell/default.json
$ vim ~/.config/powerline/themes/shell/default.json

在 json 文件中又該如何設定呢?可以參考官方文件,或是上圖使用的設定

5. 為 Vim 也換上 Powerline 狀態列

既然 Shell 都換上 Powerline 了, Vim 當然也要換一下啊,只要編輯一下 .vimrc 就可以了

$ vim ~/.vimrc

.vimrc 文件中置入下面的設定

set laststatus=2set t_Co=256python from powerline.vim import setup as powerline_setuppython powerline_setup()python del powerline_setup

儲存之後再打開 Vim 就會看到下方的 Powerline 狀態列囉

--

--