2015년 2월 25일 수요일

Mac을 위한 Vim 설정

Mac을 위한 Vim, Vundle

Vim의 기본 설정부터 사용을 맥사용자를 중심으로 정리한 글입니다.

Vim?

Unix 계열의 유서 깊은 오픈소스 텍스트 에디터 vi의 improved 버젼. 
우리가 사용하게 될 vim은 macvim으로 vim의 7.2버젼과 대응된다(2015.2.26)

Vim의 장점

  • 네비게이션 키가(hjkl) 모두 키보드 가운데 몰려 있다.
  • 자주 쓰는 명령어조차 키 조합을 추가로 조합해서 사용하는 경우가 잦은 Emacs 에 반해 vim 에서는 그냥 영문 단타로 끝나는 경우가 많아 금방 손에 익게 된다.
  • 마우스를 사용하지 않게 된다. 이것이 왜 장점 인지는
    http://www.moreagile.net/2014/12/HowtoBecomeAnExpertDeveloper.html 참고
  • CLI 환경과의 궁합이 좋다.
  • 수 많은 플러그인으로 기능상으로도 여타 최신 텍스트 에디터(ex sublime...)과 비교해 밀리지 않는다. 플러그인을 관리하는 플러그인도 있다. (조금 들어가기 시작하면 한 개발팀이 개발하는 텍스트 에디터로서는 신경쓰기 힘든 소소한 부분들까지 플러그인이 나와 있으며, 오히려 자신에게 맞는 환경(언어던 코딩스타일이던)을 구축 할 수 있어 생산성에서 압도적이다.
  • 뭔가 멋지다.

Vim 설치

그런거 없다. mac에는 기본적으로 설치되어 있다. 

window의 경우 http://vim.wikia.com/wiki/Where_to_download_Vim 참고
정신건강을 위해 gvim을 추천한다 vim이 unix계열을 위해 만들어 졌다 보니 windows 터미널과 궁합이 끔찍하다.

ubuntu의 경우
sudo apt-get install vim
이였나? 로 다운로드 가능.


Vim 설정

모든 Vim관련 설정은 .vimrc 파일을 통해 미리 정의 해 놓을 수 있다. (windows는 _vimrc)
.vimrc 파일은 사용자 폴더(ex User/Seohamac)에서 찾을 수 있다. 내 사용자 폴더가 어딨는지 모르겠으면
cd ~
을 통해 들어 갈 수 있다.( 애초에 터미널 키면 디폴트로 열리는 곳이 사용자 폴더이다.)

.vimrc 파일은 .로 시작하기 때문에 맨눈으론 보이지 않는다. ls -a 혹은 숨긴파일 보기를 통해 볼 수 있다. 보통 처음에는 아예 없을 수도 있다.

.vimrc 파일을 편집하기 전에 먼저 플러그인 관리를 위해 vundle을 설치하자 어렵지 않다.
터미널에 다음의 코드만 입력하면 된다.
git clone https://github.com/gmarik/Vundle.vim.git ~/.vim/bundle/Vundle.vim
 git가 없다면 맥 콘솔 개발자 도구를 설치 할 것인지 묻는 창이 뜬다. 어차피 gcc, g++등 프로그래밍을 하려면 필요한 도구들이다. 설치하자.

설치가 끝나면
sudo vim .vimrc
로 .vimrc 파일을 연다. 설정을 종료한 후 우리는 Vundle을 통해 플러그인을 설치 할 것이므로 sudo로 열어주는 것이 좋다.


다음의 코드를 복사한다.

set nocompatible 
filetype off 
set rtp+=~/.vim/bundle/Vundle.vim 
call vundle#begin() 
Plugin 'gmarik/Vundle.vim' "required
Plugin 'tpope/vim-fugitive' "required 
call vundle#end()            
filetype plugin indent on " Put your non-Plugin stuff after this line

여기까지가 vundle을 쓰기 위한 기본적인 세팅이다. 여기까지 추가해준 다음에
:w  
:source %
:PluginInstall

을 차례로 입력한다.


이 이후에 플러그인과 무관한 기본 설정들을 추가하면 된다. 추천하는 세팅은 다음과 같다.

syntax enable #syntax highlighting
set nu # add line numbers
set smartindent # make smart indent
set tabstop=4 # tab width as 4 (default 8)
set shiftwidth=4 
set expandtab
sensible이라는 훌륭한 플러그인으로 이런 세팅없이 기본적으로 필요한 세팅을 생략 할 수 있다. 본인 글에 의하면
Think of sensible.vim as one step above 'nocompatible' mode: a universal set of defaults that (hopefully) everyone can agree on.
이라는데, 맞는 듯. 다만 오버라이딩이 힘드니 그 점은 참고. 오버라이딩 할 일이 없긴 하다.

플러그인

플러그인을 추가하기 위해선 call vundle#begin() 과 call vundle#end() 사이에 코드를 추가한 후 위의 플러그인 설치 명령어를 다시 차례로 입력하면 된다.


다음은 설치를 추천하는 플러그인이다. 모르겠으면 다 설치해도 무방하다.


Plugin 'tpope/vim-sensible'
.vimrc의 셋팅을 표준? 세팅으로 바꿔주는 플러그인 지금 실험 중 만약 쓸만하면, 위의 추천 .vimrc 셋팅 말고 이걸 사용해도 좋을 듯, 다만 오버라이딩이 힘듦, 실험결과 훌륭. 위의 설정 다 필요 없고 이거 쓰자.



 Plugin 'scrooloose/nerdtree'
이 플러그인을 다운받은후 :NERDTree를 입력하면 파일 네비게이션 바가 좌측에 생긴다. hjkl로 탐색 가능하며 o로 열 수 있다.


Plugin 'scrooloose/syntastic'

문법 highlighting을 위한 플러그인 기본적으로 내장돠어 있는 언어보다 더 다양한 언어들을 지원한다.

Plugin 'scrooloose/nerdcommenter'
계속 같은 사람이 만든 플러그인... 코멘트를 쉽고 간편하게 만들어 준다. 재대로 된 활용을 위해서는 조금의 러닝커브가 필요하다.

Plugin 'mattn/emmet-vim'
HTML을 편집하기 쉽게 만들어주는 플러그인 서브라임이나 브라켓의 emmet라이브러리와 동일하다.

Plugin 'Shougo/neocomplcache.vim'
자동 완성 플러그인 단순히 기억 안 나는 함수를 호출 할 때 뿐만이 아니라 tab을 통해 완성하면 원천적으로 오타가 방지되기 때문에 자동완성 플러그인을 선호한다. 평을 보면 미묘하게 YouCompleteMe에 비해 박하나, YouComlepteMe는 macvim의 버젼인 7.2와 호환이 안된다.

Plugin 'nathanaelkane/vim-indent-guides'
sublime이나 xcode처럼 indent의 깊이를 선으로 표현해준다. 파이썬처럼 인덴팅이 문법인 언어에서는 필수.

 


http://vimawesome.com/ 에서 플러그인들을 잘 정리 해 놓았으니 참고

vim 사용법은 다음 글에서...





  

댓글 4개:

  1. http://ww.googolhkl.com/ 제 블로그로 퍼갈께요!!

    답글삭제
  2. http://ww.googolhkl.com/ 제 블로그로 퍼갈께요!!

    답글삭제
  3. Plugin을 적용했을때 mvim창에서는 각 플러그인이 제대로 동작하는데, 터미널에서 mvim이 아닌 vim을 이용해 파일을 열면 Plugin이 적용이 안됩니다.
    터미널에서 vim을 이용하는경우에도 plugin들이 잘 동작하게 할수 없을까요?
    mvim은 gui로 따로 동작해서 사용하기가 불편할때가 많네요.

    답글삭제