安裝Powerline并配置Vim、Bash、tmux、IPython、pdb
使用Bash,是Linux下開發(fā)的基本技能。雖然也有zsh、fish等流行Shell,但Bash是多數(shù)情況下的默認,基本中的基本。
Shell的提示符(Prompt),默認在root下是#,在普通用戶下是$,但這只能提示用戶權(quán)限信息。Bash默認情況下做了一些強化,但信息較少,而且不夠美觀。
本文主要介紹基于Powerline的CLI美化配置。
Powerline簡介
Powerline一開始是一個Vim的狀態(tài)欄插件,后來發(fā)展成為Bash、zsh、fish等Shell的終端提示工具。此外,還支持tmux、IPython、Awesome、i3、Qtile等軟件。
Powerline in Vim (and tmux)
在這個增強的狀態(tài)欄中,我們可以看到Vim模式、Git分支、文件路徑、Git狀態(tài)等信息。不僅美觀,而且實用。
在Bash中,Powerline也同樣強大。由于場景與Vim不同,因此顯示內(nèi)容也不同,默認有用戶名、當前路徑、后臺任務數(shù)等,遠程模式下還有hostname。根據(jù)需要,也可以添加更多的系統(tǒng)元素,如上一命令返回值、時間、電池等。
Powerline in Bash (and tmux)
在tmux中,默認有Window編號、開機時間、日期、hostname等信息。
安裝軟件
一般情況下,直接使用pip即可安裝。為了便于多用戶使用,通常全局安裝。需要特別注意的是,包被占,因在pypi.org的包名是powerline-status。
- sudo pip install powerline-status
似乎是由于作者失聯(lián),powerline-status的版本停留在了2.7,目前最新是2.8.1。如果需要更新,可以使用develop或master分支。
- sudo pip install git+https://github.com/powerline/powerline.git@develop
安裝字體
Powerline在顯示時,使用了特殊字體。一般的字體配置,不能正確地展示。因此,需要安裝其字體。
- sudo apt install fonts-powerline
如果在其它系統(tǒng)與環(huán)境,可以參考powerline-fonts的指導,手動安裝。
- git clone https://github.com/powerline/fonts.git
- cd fonts
- ./install.sh
配置
Powerline支持多種使用場景。其中,不同場景下需要不同的配置。
以下介紹五個場景的配置:
- Vim
- Bash
- tmux
- IPython
- pdb
Vim
Vim中,Powerline只是其狀態(tài)欄插件。在~/.vimrc中,可以使用插件的方式添加。
- Bundle 'powerline/powerline', {'rtp': 'powerline/bindings/vim'}
- " or
- Plug 'powerline/powerline', {'rtp': 'powerline/bindings/vim'}
也可以直接復用系統(tǒng)安裝的powerline-status。
- python3 << endpython
- from powerline.vim import setup as powerline_setup
- powerline_setup()
- del powerline_setup
- endpython
以上兩種配置方式,流行的是第一種,但這里推薦第二種。第一種有若干問題,某些場景下會報錯提示有兩個powerline。
Bash
- POWERLINE_HOME=$(python3 -c "
- import pkg_resources
- try:
- dist = pkg_resources.get_distribution('powerline-status')
- print(dist.location)
- except pkg_resources.DistributionNotFound:
- raise SystemExit(1)
- ")
- if [ -d "$POWERLINE_HOME" ]
- then
- source "$POWERLINE_HOME/powerline/bindings/bash/powerline.sh"
- export POWERLINE_HOME
- fi
tmux
在~/.tmux.conf文件中,添加一行:
- source "$POWERLINE_HOME/powerline/bindings/tmux/powerline.conf"
其中,$POWERLINE_HOME是前面Bash配置中export的那個變量。因此,tmux的這個配置依賴于Bash的配置。
IPython
新增文件~/.ipython/profile_default/ipython_config.py,添加以下內(nèi)容:
- from powerline.bindings.ipython.since_7 import PowerlinePrompts
- c = get_config()
- c.TerminalInteractiveShell.simple_prompt = False
- c.TerminalInteractiveShell.prompts_class = PowerlinePrompts
不同IPython版本,需要使用不同的配置。這里是針對最新的7.x版本的配置,所以是since_7。對舊版本,需要使用舊的配置,可參考《other.rst#ipython-prompt》。
注意:由于since_7是在Powerline 2.8加入的功能,因此必須使用源碼安裝的方式。由于相同原因,官方文檔也無法更新,因此最新文檔只能查看源碼中的文檔文件。
pdb
使用以下命令,替代pdb,即可獲得Powerline效果:
- python3 -m powerline.bindings.pdb
當然,這個命令比較長,不方便??梢允褂靡韵耡lias。
- alias pdb='python3 -m powerline.bindings.pdb'
結(jié)語
在Powerline的這些增強與美化中,Vim、Bash和tmux是最有用的,另外兩個純粹只是美化而已。
CLI本身是高效的,但是也未免乏味。有了Powerline,不僅顯著提高了顏值,更是提供了更多相關(guān)信息。習慣之后,會大幅提高工作效率。