현재 vim-powerline보다는 vim-airline이 좀 더 괜찮습니다. 저도 현재는 vim-airline을 사용하고 있습니다. 설치 방법은 비슷합니다.(왜냐하면 vim-powerline으로부터 파생되었기 때문입니다.) - 2014.06.15


fedora22 부터는 RPM 패키지로 제공되므로 RPM 패키지로 설치하는 방법을 참고하기 바랍니다. - 2016.03.13

- "페도라 23에서 vim powerline 설치하기" http://sunyzero.tistory.com/241




vim-powerline은 하단의 상태바(status bar)를 예쁘게 꾸며주는 플러그인이다. powerline을 사용하면 vim의 일반 모드, 입력 모드와 같이 모드가 바뀔 때 색상을 다르게 표시해줘서 가독성을 높여준다. 그러나 키바인딩을 감시하여 화면을 다시 그리기 때문에 저사양의 PC에서는 느려질 수 있다는 단점이 있다. 


아래는 powerline이 적용된 뒤에 putty에서 접속하여 띄운 화면이다.


vim powerlinevim powerline


그림 하단에 연두색으로 시작하여 "NORMAL > tpbFixHeaderReceiver ...."으로 보이는 부분이 바로 powerline 플러그인 효과이다. 상태바는 색상별로 5개의 필드 구분되어 있는 것을 볼 수 있다.


첫째 필드는 vim의 모드를 보여주며 NORMAL, INSERT, REPLACE 등등의 상태를 보여준다. 아래 그림을 보면 각 모드별로 색상도 달라지는 것을 볼 수 있다.


vim powerline statusbarvim powerline statusbar


둘째 필드는 파일명을 보여주며, 셋째 필드는 텍스트 형식(UNIX or DOS), 인코딩, 문법을 적용할 파일 타입을 의미한다. 예를 들어 "unix < utf-8 < python"으로 적혀있다면 UNIX 텍스트 형식에 UTF-8 인코딩을 사용했으며, python 소스 코드 파일임을 의미한다. 


넷째 필드는 현재 위치의 문서상 퍼센트이며 마지막 필드는 현재 커서의 행(line)과 열(column) 위치를 보여준다.




* 설치방법

powerline을 설치하려면 vundle을 이용하는 방법이 제일 편하다. vundle은 vim 플러그인을 설치, 삭제, 관리하는 플러그인으로서 https://github.com/gmarik/vundle 를 참조하도록 한다. 참고로 vundle에 대한 설명은 neocoin님의 vundle 강좌에 설명되어있다. 먼저 vundle부터 설치하고 오자.


1. powerline의 설치

현재(2012년 11월 기준) BundleSearch 명령으로는 설치되지 않으므로 직접 github 주소를 입력해야 한다. 아래 코드에 보면 Bundle 'https://github.com/Lokaltog/vim-powerline.git' 부분이 추가된 부분이다.(11번행) 

이렇게 11번행이 추가된 뒤에 vim에서 :BundleInstall 명령을 내리면 github로부터 다운받는 과정과 설치가 자동으로 진행된다.

set nocompatible " be improved vi
filetype off    " for vundle
set rtp+=~/.vim/bundle/vundle/
call vundle#rc()

" let Vundle manage Vundle
 " required!
Bundle 'gmarik/vundle'

 " My Bundles here:
Bundle 'https://github.com/Lokaltog/vim-powerline.git'
 " original repos on github
Bundle 'tpope/vim-fugitive'
Bundle 'Lokaltog/vim-easymotion'
Bundle 'rstacruz/sparkup', {'rtp': 'vim/'}
Bundle 'tpope/vim-rails.git'
 " vim-scripts repos
Bundle 'L9'
Bundle 'FuzzyFinder'
 " non github repos
Bundle 'git://git.wincent.com/command-t.git'
 " ...

filetype plugin indent on     " required!


2. 폰트 설치

powerline에서 꺽인 괄호역할을 하는 부분은 기존 글꼴에 없기 때문에 글꼴을 패치해야만 한다. 직접 패치해도 되지만 이미 패치된 글꼴을 powerline 홈페이지에서 배포하고 있으므로 다운받으면 된다. 다운 URL은 (https://github.com/Lokaltog/vim-powerline/wiki/Patched-fonts)이다.


잘모르면 주로 쓰이는 폰트인 Consolas나 Lucid TypeWriter으로 받도록 하자. 참고로 위 그림의 폰트는 Consolas이다.


윈도우즈의 폰트 설치는 C:\windows\font 디렉토리에 복사해 넣으면 된다. 혹은 윈도7이라면 폰트 파일을 더블 클릭하면 폰트 뷰어가 실행되는데 여기에 "설치" 버튼이 보인다. 아래 그림은 윈도7에서 Consolas 폰트 파일을 더블 클릭하여 폰트 뷰어를 실행시킨 화면이다.


Windows7 font viewerWindows7 font viewer


윈도의 putty에서 접속한다면 윈도 폰트만 설치하면 되고 리눅스에 폰트를 설치할 필요는 없다.


리눅스의 폰트 설치는 /usr/share/fonts /usr/share/fonts/truetype 밑에 적당한 디렉터리(예: consolas-powerline)를 하나 만들고 여기에 TTF 폰트 파일을 복사해넣으면 된다. 그리고 "fc-cache -f" 명령으로 폰트 캐시를 리빌드 하면 된다. 리눅스의 폰트 설치는 리눅스 데스크탑에서 직접 터미널을 띄울 때만 의미가 있다. 앞서 언급한 대로 윈도에서 putty를 이용해서 ssh 접속을 한다면 윈도에 폰트를 설치하는 것으로 족하다.


3. vimrc 설정

여기까지 했으면 vimrc를 설정해야 한다. 설정은 아래 3줄을 추가해준다.

language en_US.UTF-8
let g:Powerline_symbols = 'fancy'
set laststatus=2


첫째 줄의 language는 사용 언어를 영문으로 고정하는 것이다. 글꼴에 따라서 한글 모드로 작동되는 경우에 화면이 깨지는 경우가 있으므로 영문모드로 작동하도록 한 것이다. 만일 language 설정을 제거해도 문제가 없이 작동한다면 제거해도 된다. 


둘째줄은 꺽은 괄호 형태의 필드 구분을 사용하는 부분으로 이 부분이 없으면 그냥 네모 블록으로 보인다. 주석처리해보면 차이를 알 수 있을 것이다.


셋째줄은 하단의 상태바를 항상 출력하도록 하는 기능으로 2를 주면 항상 powerline 상태바를 출력하게 된다.

여기까지 설정한 뒤에 vim을 띄워보면 예쁜 상태바가 보일 것이다. 만일 색상이 잘 나오지 않는다면 아래 PuTTy를 위한 터미널 색상설정을 보도록 하자.


* PuTTy를 위한 설정

PuTTy를 이용해서 원격 접속을 하는 경우에는 상태바의 색상이 잘 안나올 때가 많다. 이는 터미널에서 표현하는 색상이 8색으로 고정된 경우이다. (리눅스에서 tput colors를 실행해보면 현재 터미널이 표현하는 색상 정보를 볼 수 있다.)


만일 256색을 사용하고 싶다면 .bashrc를 열고 export TERM='xterm-256color' 라는 행을 넣어두면 된다. (256색이 지원되지 않는 경우에는 xterm-88color을 대신 사용해도 된다.)


저작자 표시
신고
  1. ohyecloudy 2012.11.12 16:07 신고

    마음에 드는 플러그인이네요. 소개 감사합니다.

  2. Lowid 2012.11.19 00:03 신고

    TERM 환경변수를 그냥 xterm-color로 해놓으니까 깨져버리네요...
    꼭 xterm-88color, xterm-256color로 맞춰야 정상작동을 하는군요...

  3. 조기원 2014.05.07 13:14 신고

    좋은 정보 감사합니다.^^!!

  4. neverapple88 2014.06.14 19:48 신고

    전 수동 패치를 했는데 오류가 뜨면서 아무리 해도 안되네요
    ./fontpatcher UnBatang.ttf
    Traceback (most recent call last):
    File "./fontpatcher", line 66, in <module>
    symbols = fontforge.open(args.symbol_font)
    UnicodeDecodeError: 'ascii' codec can't decode byte 0xeb in position 19: ordinal not in range(128)

    그래서 구글링으로 다른 사람이 만든 패치 된 폰트를 사용 하기로 했습니다.
    : https://github.com/Lokaltog/powerline-fonts

    • sunyzero 2014.06.15 22:01 신고

      수동 폰트 패치는 영문전용패치라서 한글이 포함된 폰트들은 아마 안될겁니다.