Powerline은 Vim 편집기를 위한 훌륭한 상태 표시줄(statusline) 플러그인으로, Python으로 개발되었으며 bash, zsh, tmux 등 다양한 애플리케이션에 상태 표시줄과 프롬프트를 제공합니다.
주요 기능
- Python으로 작성되어 확장성이 뛰어나고 다양한 기능을 제공합니다.
- 안정적이고 테스트 가능한 코드베이스를 갖추고 있으며, Python 2.6+ 및 Python 3와 호환됩니다.
- 여러 Linux 유틸리티와 도구에서 프롬프트 및 상태 표시줄을 지원합니다.
- JSON을 활용한 설정과 데코레이터 색상 구성을 지원합니다.
- 빠르고 가벼우며, 데몬 지원을 통해 더욱 향상된 성능을 제공합니다.
Powerline 스크린샷
이 글에서는 RedHat 계열과 Debian 계열 시스템에서 Powerline과 Powerline 폰트를 설치하고, Bash와 Vim에서 사용하는 방법을 단계별로 소개합니다.
1단계: Powerline 공통 요구 사항 설치하기
다른 무관한 프로젝트들과의 이름 충돌로 인해 powerline 프로그램은 PyPI(Python Package Index)에서 powerline-status라는 패키지 이름으로 배포됩니다.
PyPI에서 패키지를 설치하려면 'pip'(Python 패키지 설치용 패키지 관리 도구)가 필요합니다. 먼저 리눅스 시스템에 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 https://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) ...
CentOS, RHEL, Fedora에 Pip 설치
Fedora 계열 시스템에서는 먼저 epel 저장소를 활성화한 후 pip 패키지를 설치해야 합니다.
# yum install python-pip # dnf install python-pip [Fedora 22+ 버전]
실행 결과 예시
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!
2단계: 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
참고: 현재 공식 저장소는 github.com/powerline/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...
3단계: Linux에 Powerline 폰트 설치하기
Powerline은 특수 화살표 효과와 개발자용 심볼을 표시하기 위해 특수 글리프(glyph)를 사용합니다. 따라서 시스템에 심볼 폰트 또는 패치된 폰트가 반드시 설치되어 있어야 합니다.
다음 wget 명령으로 최신 버전의 심볼 폰트와 fontconfig 설정 파일을 다운로드합니다.
# 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/
마지막으로 fontconfig 파일을 설치합니다.
# mv 10-powerline-symbols.conf /etc/fonts/conf.d/
참고: 커스텀 심볼이 표시되지 않으면 모든 터미널 세션을 종료하고 X 윈도우를 재시작하여 변경 사항을 적용해 보세요.
4단계: Bash 셸과 Vim 상태 표시줄에 Powerline 설정하기
이번 섹션에서는 bash 셸과 vim 편집기를 위한 Powerline 설정 방법을 살펴보겠습니다. 먼저 ~/.bashrc 파일에 다음 줄을 추가해 터미널이 256color를 지원하도록 합니다.
export TERM="screen-256color"
Bash 셸에서 Powerline 활성화
bash 셸에서 기본적으로 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 상태 표시줄을 확인할 수 있습니다.

여러 디렉터리로 이동하거나 전환해 보면서 현재 위치를 나타내는 "브레드크럼(breadcrumb)" 프롬프트의 변화를 살펴보세요.
대기 중인 백그라운드 작업도 함께 표시되며, 원격 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을 실행하면 깔끔하고 멋진 새 상태 표시줄을 만나볼 수 있습니다.

마무리
Powerline은 여러 애플리케이션에서 알록달록하고 세련된 상태 표시줄과 프롬프트를 손쉽게 구성할 수 있도록 도와주며, 코딩 환경에 매우 유용한 도구입니다. 이 가이드가 도움이 되었기를 바라며, 궁금한 점이나 추가 아이디어가 있다면 댓글로 남겨 주세요.