본문 바로가기

4.개발 및 운영 환경

vim에서 빌드 환경 구성

매번 vim에서 소스코드 수정하고 빌드하고 에러 확인하고 수정하는 반복적인 단순한 작업!!!!!
이거 짜증나서 미칠 것 같다고 생각하시는 분! 아니면, 편하게 작업하고 싶다고 간절하게 원하시는분!
키하나로 이 모든 것을 쉽게 해결하는 방법을 제공해드리겠습니다.
이것이 바로 내가 원하는 것인데, 내가 아쉬워서 찾아서 정리해보았다. ㅡ.ㅡ;;;;

작성자: http://ospace.tistory.com/,2014.02.04 (ospace114@empal.com)

먼저 빌드설정

vim에서 빌드에 대한 구성은 간단하다. 바로 중립모드에서 명령을 실행하면 된다.

:!gcc -o %< %

이 명령을 매번 실행하려면 매우귀찮다. 그러면 키로 등록하여 사용해보자. 사용할 키는 "F3"이다. 키는 개인적 취향으로 선택하면된다. 키 등록을 위해서는 "~/.vimrc" 파일에 아래 내용을 추가하면 된다.

map <F3> :!gcc -o %< % <CR>

뒤에 은 자동으로 엔터키를 입력하라는 말이다. 그렇지 않으면 위의 명령이 입력된 상태로 대기하기 됩니다.
그럼 간단하게 빌드됩니다. 근데 빌드 에러에 대해서는 확인하기 힘들 군요.

빌드에러 확인

빌드 에러을 쉽게 확인하는 방법은 vim의 자체설정인 makeprg를 이용한 방법이 있습니다. 이를 이용하고 빌드 명령은 "make"을 사용하는 방법입니다. 그러면 "cw"나 "cl"로 쉽게 에러를 확인할 수 있습니다.
먼저 "~/.vimrc"에서 "makeprg" 설정값을 변경하고 앞에서 설정한 F3 키의 명령을 수정해봅니다.

setlocal makeprg=gcc\ -o\ %<\ %
map <F3> :w<CR> :make!<CR> :cw<CR>

":w" 명령은 현재 수정한 내용을 저장하고 빌드는 것입니다. "make" 명령에 의해 "makeprg"에 설정된 내용을 실행합니다. 그리고 ":cw"에 vi에 새로운 창으로 빌드 에러을 표시합니다.

Makefile 고려

사실 vim에서 "makeprg" 설정은 Makefile을 위한 부분입니다. 그리고 "make" 명령에 의해 Makefile을 빌드하기위한 목적입니다. 그러나 현재 이 설정을 다른 목적으로 사용하기 있습니다. 즉, 기존 Makefile 빌드에서는 오류가 발생할 수 밖에 없습니다.
그러면 일반 소스를 빌드하는 것과 Makefile을 빌드하는 부분을 고려해봅니다. 즉, 둘다 빌드하는 것을 지원합니다. 이를 위해 앞의 "~/.vimrc"파일에서 "makeprg"의 설정하는 부분을 아래와 같이 수정하면 됩니다.

if !filereadable(expand("%:p:h")."/Makefile")
  setlocal makeprg=gcc\ -o\ %<\ %
endif

위의 내용은 간단합니다. 디렉토리에 Makefile이 있으면 그냥 기본값 사용하는 것이고 없으면 gcc로 빌드하는 것입니다.

화려하게 만들기

위 정도까지 하면 일단 기본은 됩니다. 여기서는 빌드에러가 별도로 표시되기 때문에 일일이 확인하는 과정이 귀찮습니다.
에러를 바로 편집하는 소스코드 상에 바로 표시해주면 좋을 것 같네요. Eclipse나 VisualStudio 처럼 에러가 발생한 줄에 highlight을 해주는 기능입니다. 이런거 없을까요?
역시 구글신이 답해줍니다. syntastic을 설치하면 됩니다. 설치 순서는 다음과 같습니다.

  1. 먼저 디렉토리를 생성하고 pathogen.vim을 설치합니다.
mkdir -p ~/.vim/autoload ~/.vim/bundle;\
curl -so ~/.vim/autoload/pathogen.vim \
    https://raw.github.com/tpope/vim-pathogen/master/autoload/pathogen.vim
  1. bundle을 설치합니다.
cd ~/.vim/bundle
git clone https://github.com/scrooloose/syntastic.git
  1. vim에 로딩할 수 있도록 다음을 "~/.vimrc"에 추가합니다.
execute pathogen#infect()
  1. 설치가 잘되었는지 확인합니다. vim에서 다음 명령을 입력해도 에러가 없다면 정상입니다.
:Helptags

이제 빌드 테스트해봅니다. 아래는 간단하게 테스트해본 결과입니다.

syntastic이 좋은 것은 수정하고 저장하면 바로 문법체크를 해준네요. 그래서 에러도 표시해줍니다. 즉, 앞애서 ":w" 명령에 의해서 저장이되고 syntastic에 의해 체크를 수행하게 됩니다. 빌드는 별도로 수행하여 ":cw"에 의해 결과를 표시합니다. 즉, 빌드하지 않아도 바로 바로 확인가능하다는 점이죠. 빌드 기다리는 시간을 절약할 수 있다는 점!!!

결론

사용은 매우 간단합니다. 뭐할게 없네요. 많이 사용해보지 않았지만, 사용할만 합니다. ㅎㅎㅎㅎㅎ
요약하면 아래와 같네요. 일단 syntastic가 설치되어 있다고 간주하겠습니다. 그러면 "~/.vimrc"에 추가되는 내용은 다음과 같네요.

execute pathogen#infect()
if !filereadable(expand("%:p:h")."/Makefile")
  setlocal makeprg=gcc\ -o\ %<\ %
endif
map <F3> :w<CR> :make!<CR> :cw<CR>

보기에 간단하지요. 필자는 이를 위해 몇시간 동안의 검색과 시행 착오와 비교를 통해 검증하고 정리한 후에 이 글의 작성한 것입니다. ㅠ.ㅠ
아무튼 이 것으로 필요없는 작업이 간소화되고 시각적으로 명료해지므로서 실수를 줄이므로서 생상량이 향상이되겠죠.
여러분도 바로 적용해보세요. ㅎㅎㅎㅎㅎ
모드 즐프~

참조

[1] Bijan Chokoufe, 2011.09.30, Get More Out of Vim's makeprg, http://tuxion.com/2011/09/30/vim-makeprg.html

[2] scrooloose, 2014.02, syntastic "Syntax check hacks for vim", https://github.com/scrooloose/syntastic

[3] Use the quickfix window to list all errors, http://vim.wikia.com/wiki/Use\_the\_quickfix\_window\_to\_list\_all\_errors

반응형