*이 튜토리얼은 Vundle 설치부터 vim-flake8의 설치까지를 다룹니다.
단, pip를 이용해서 flake8을 설치하는 것은 이미 되어있다고 가정합니다.
python package가 꼬였다든가 sudo 권한이 없다거나 해서 설치하지 못했다면 pyenv를 참고하세요.

목차

  1. PEP8
  2. Vundle 설치
  3. vim-flake8 설치
  4. flake8, vim-flake8 설정

1. PEP8: Style Guide for Python Code

2. Vundle 설치

Vundle은 vim용 플러그인 매니저이다. vim 플러그인을 수동으로 설치하고 삭제하고 하는 일은 너무 불편하기 때문에 안 써봤다면 지금부터라도 사용하는 것을 강력하게 권한다.

설치는 간단하다. 우선 이렇게 Vundle.vim을 git을 이용해서 설치하고(설마 git이 없다면..),

$ git clone https://github.com/gmarik/Vundle.vim.git ~/.vim/bundle/Vundle.vim

~/.vimrc 파일을 열어 맨 위에 다음 bolierplate code를 추가하면 일단은 끝!

set nocompatible              " be iMproved, required
filetype off                  " required

" set the runtime path to include Vundle and initialize
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()
" alternatively, pass a path where Vundle should install plugins
"call vundle#begin('~/some/path/here')

" let Vundle manage Vundle, required
Plugin 'gmarik/Vundle.vim'

"place plugin here

" All of your Plugins must be added before the following line
call vundle#end()            " required
filetype plugin indent on    " required

이제 "place plugin here에 vim용 플러그인을 자유롭게 추가할 수 있다. 플러그인을 추가하는 방법은 다음과 같은 것들이 있다:

  • :PluginSearch(에러가 날 경우 재시도)에서 원하는 플러그인을 검색한 후 그 줄을 복사, .vimrc에 붙여넣기
  • github에 호스트된 플러그인일 경우 Plugin 'user/repo_name'과 같이 추가하거나
  • Plugin 'https://github.com/VundleVim/Vundle.vim'과 같이 저장소 주소로 추가할 수 있다.
  • Plugin 'file:///home/kcy1019/path/to/plugin'과 같은 로컬 주소와
  • Plugin 'git://git.wincent.com/command-t.git'과 같이 github 밖의 저장소도 이용 가능하다.
  • 이외의 추가 방법은 Vundle README를 참고하자.

물론 이렇게 .vimrc 파일에 이름/주소만 적었다고 바로 적용되는 건 아니고, .vimrc를 저장하고 vim을 재실행한 다음 :PluginInstall을 입력해서 플러그인을 설치하고 vim을 재실행해야 적용된다.

추천 플러그인

조금 오래된 설정들이긴 하지만, 여전히 편하게 사용하는 플러그인을 모아봤다.

*Bunlde을 Plugin으로 바꿔서 사용하자(오래된 Vundle을 사용중일 때 찍어둔 사진이라).

3. vim-flake8 설치

flake8이 설치되어있다면 vim-flake8 플러그인을 통해 vim에서 flake8을 현재 python 스크립트에 수행시켜 결과를 확인할 수 있다.

Plugin 'https://github.com/nvie/vim-flake8'

이렇게 vim-flake8을 설치하고, README를 읽어보면 기본적으로 python 스크립트를 vim으로 연 채 키를 누르면 작동한다고 되어있다. 물론 이 단축키를 다른 키로 바꾸는 방법도 적혀있다. 예를 들어 키로 변경하고 싶다면 .vimrc파일에 다음과 같이 설정을 추가하면 된다.

autocmd FileType python map <buffer> <F3> :call Flake8()<CR>

그리고 다음 줄을 .vimrc에 추가해서 flake8의 바이너리가 있는 위치를 수동으로 설정할 수도 있다(별 쓸모는 없지만).

let g:flake8_cmd="/path/to/flake8"

4. flake8, vim-flake8 설정

vim-flake8 설정

vim-flaked의 유용한 옵션 중 하나는 파일에 직접 문제가 되는 부분을 표시해주는 것이다.

let g:flake8_show_in_file=1   " show
let g:flake8_max_markers=500  " maximum # of markers to show(500 is default)

이를 적용하면 다음과 같이 QuickFix 외에도 파일에 문제가 표시되어 편리하다.

vim-flake8의 자세한 설정법은 vim-flake8 README를 읽어보자.

flake8 설정

flake8의 유용한 옵션 중 하나는 줄의 최대 길이를 조절하는 것이다.

# ~/.config/flake8 의 내용
[flake8]
max-line-length = 120

flake8의 자세한 설정법은 flake8 doc을 읽어보자.