Vim에서 Flake8(PEP8 lint) 설치 및 사용
*이 튜토리얼은 Vundle 설치부터 vim-flake8의 설치까지를 다룹니다.
단, pip를 이용해서 flake8을 설치하는 것은 이미 되어있다고 가정합니다.
python package가 꼬였다든가 sudo 권한이 없다거나 해서 설치하지 못했다면 pyenv를 참고하세요.
목차
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으로 연 채
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을 읽어보자.