2013년 12월 27일 금요일

vim을 Python 에디터로 잘 활용하기

PyCharm과 같은 IDE도 좋지만 간단한 코딩에는 vim만한 에디터가 있을까? Python 코딩에 도움이 되는 vim 팁을 정리해봅니다.


Tab 설정 및 Syntax Color 설정

가장 기본적인 설정부터 살펴봅시다. Python Syntax Color를 지정하기 위해서는 http://www.vim.org/scripts/script.php?script_id=790 사이트에서 python.vim 파일을 다운로드 받아 ~/.vim/syntax/ 폴더에 복사합니다. ~/.vimrc 파일에는 아래와 같이 추가해줍니다.

syntax on
filetype plugin indent on 

Tab 설정은 ~/.vim/ftplugin/python.vim 파일에 아래와 같이 추가해줍니다. (파일이 없다면 새로 생성해주세요)

set tabstop=8
set softtabstop=4
set shiftwidth=4
set textwidth=100
set expandtab
set smartindent cinwords=if,elif,else,for,while,try,except,finally,def,class
set nocindent


Tagging 및 소스코드 브라우징

규모가 제법 큰 Python 프로젝트를 vim으로 편집하기 위해서는 소스 브라우징 기능이 절실합니다. 이 함수가 어느 파일에 구현되어 있는지 어디서 사용하는지 등등 이 파일 저 파일 왔다갔다 하려면 정신없죠. ctgas를 이용하여 tagging file을 만들어주면 vim에서 Python 소스 브라우징이 가능해집니다.

Mac OS X의 경우에는 exuberant ctags를 설치해주어야 합니다. Homebrew를 이용하면 간단하게 설치가 가능합니다.

brew install ctags-exuberant 

설치완료 후 터미널에서 ctags --help를 실행하면 Exuberant Ctags 5.8과 같은 버전 정보가 보일겁니다.

tagging file을 만드는 방법은 간단합니다. 원하는 프로젝트 폴더에서 ctags -R 을 실행하면 됩니다. 단, 이렇게하면 tagging에 Python 코드의 변수, import된 패키지 이름 정보도 함께 포함됩니다. tagging 정보에는 클래스와 함수만 포함되는 것이 코드 브라우징을 사용하기 수월합니다. 이를 위해 ~/.ctags 파일에 아래와 같은 내용을 추가합니다.

--python-kinds=-iv
--exclude=build
--exclude=dist

위 설정에서 -iv 옵션이 import와 변수(variable)를 tagging 대상에서 제외시키는 역할을 합니다. --exclude 옵션은 tagging시 제외할 폴더를 지정할 수 있습니다.


Auto Completion 기능

Jedi 플러그인을 설치하면 vim에서 Python 코드 자동완성 기능을 사용할 수 있습니다. 설치 방법은 아래와 같습니다.

1. Vundle 플러그인을 설치합니다.
git clone https://github.com/gmarik/vundle.git ~/.vim/bundle/vundle

2. ~/.vimrc 파일을 다음과 같이 수정합니다.
syntax on
set nocompatible              
filetype off                  

set rtp+=~/.vim/bundle/vundle/
call vundle#rc()
" let Vundle manage Vundle
" " required! 
Bundle 'gmarik/vundle'
" " My bundles here:
Bundle 'davidhalter/jedi-vim'

filetype plugin indent on     " required!

3. vim을 실행 후 :BundleInstall을 실행합니다.

참고자료:

댓글 없음:

댓글 쓰기