검색 엔진의 방문이 늘어나고 있군...

Posted
Filed under 프로그램과 명령어/커맨드 라인 트릭
참조 원문 : Tips for Using Vim as an IDE

  Vim은 커스터마이징과 확장성이 매우 뛰어나기 때문에 그냥 에디터가 아닌 IDE(Integrated Development Environment=통합개발환경)로 활용할 수 있습니다.

1. 자동 들여쓰기 및 문법 하일라이팅
  본인 홈 디렉토리의 .vimrc 파일에 아래를 추가합니다.
filetype indent on
syntax on
  첫 번째 줄은 파일타입을 보고 그에 알맞는 들여쓰기를 해주며, 두 번째 줄은 문법 하일라이팅을 해줍니다. 그리고 들여쓰기의 기본 공백 길이는 8칸이지만 아래처럼 값을 바꿀 수 있습니다.
set shiftwidth=2

2. 탭 관련
  탭을 누를 때 탭 문자 대신 공백을 넣으려면 본인 홈 디렉토리의 .vimrc 파일에 아래를 추가합니다. 이 옵션을 사용할 때 탭 문자를 넣고 싶다면 Ctrl+v<tab>을 누르면 됩니다.
set expandtab
  단, 이미 있는 탭 문자는 변하지 않는데 이것들을 현재 탭 세팅에 맞게 바꿔주려면 아래 명령어를 에디터에서 사용합니다.
:retab
  탭을 누를 때마다 입력될 공백 칸의 개수는 아래를 통해 설정할 수 있습니다.
set tabstop=4

3. 실시간 검색(Incremental Searching)
  Vim은 기본적으로 검색을 할 때 /를 누른 후 검색할 단어를 입력하고 엔터를 눌러 검색합니다. 여기에는 2가지 단점이 있는데 첫 째로 검색대상을 짧게 입력하면 원치 않는 결과가 많이 걸려 나온다는 겁니다. 두 번째로 앞의 단점을 이유로 길게 치자니 너무 많은 글자를 쳐야 하고 이 경우 들이는 수고는 물론이고 오타가 발생할 확률이 늘어난다는 겁니다. 이를 해결하기 위해 한 글자를 누를 때마다 매칭되는 곳으로 이동하려면 본인 홈 디렉토리의 .vimrc 파일에 아래의 내용을 추가합니다.
set incsearch
  그러면 검색을 위해 키를 누를 때마다 그때까지 입력한 것과 일치하는 곳으로 즉시 커서가 이동합니다. 덤으로 위 세팅과 상관 없이 *를 누르면 현재 커서에 있는 단어를 대상으로 검색을 합니다.

4. Ctags
  Ctags는 소스 트리에서 함수, 변수, 클래스 멤버, 클래스 메소드 등의 이름을 인덱스 파일로 생성해주는 기능으로서 작성하고 있는 언어를 기준으로 작동하여 높은 정확성을 갖습니다.

  별도의 설치가 필요하며 리눅스의 경우 데비안 계열은 'exuberant-ctags'란 이름으로, 레드햇 계열의 경우 'ctags'라는 이름으로 다운받아 설치할 수 있습니다.

  설치가 끝나면 코드 프로젝트의 최상단 디렉토리에서 ctags -R 명령어로 태그파일을 생성합니다. 그 후 소스 파일 중 하나를 Vim으로 열어서 커서를 메소드 이름이나 오브젝트 타입에 둔 후 Ctrl+]을 눌르면 그 본체가 있는 곳으로 갈 수 있으며 Ctrl+t를 통해 이전으로 돌아갈 수 있습니다.

  Vim의 플러그인인 를 설치하면 이 기능을 더 유용하게 사용할 수 있습니다. 다운받아 압축을 해제한 후 taglist.vim 파일을 ~/.vim/plugins 디렉토리에, taglist.txt 파일은 ~/.vim/doc 디렉토리에 옮깁니다. taglist에 대한(그리고 ~/.vim/doc에 있는 다른 플러그인의 문서) 도움말 파일을 생성하기 위해 ~/.vim/doc 디렉토리에서 Vim을 실행하고 :helptags . 를 실행합니다.

  태그리스트를 사용하려면 Ctags를 실행 후 그 프로젝트의 소스 파일들 중 하나를 열어 :TlistToggle 를 실행하여 태그 윈도우를 오픈합니다. 태그를 더블 클릭하거나 엔터를 치면 소스 코드 윈도우에 있는 그 태그로 이동합니다. 새로운 파일을 열면 그 파일의 태그가 리스트 윈도우에 추가됩니다. 또한 태그를 클릭한 후 t를 눌러 새로운 Vim 탭에 그 태그를 열 수 있습니다. 파일을 수정한 후 저장했다면 :TlistUpdate를 통해 태그리스트를 업데이트하여 새로운 태그를 추가할 수 있습니다.

5. 자동완성
  본인 홈 디렉토리의 .vimrc 파일에 아래를 추가합니다.
filetype plugin on
set ofu=syntaxcomplete#Complete
  이제 단어나 메소드명을 입력 중 Ctrl+n을 눌러 추천 완성 목록을 볼 수 있습니다. Ctrl+n을 계속 눌러 목록의 다음 항목을 선택할 수 있으며 Ctrl+p로 이전 항목을 선택할 수 있습니다. 완벽한 메소드명 완성을 이용하려면 먼저 ctags를 실행해야 하며 그렇지 않으면 현재 파일 내에 있는 것만 인식할 수 있습니다.

  그 외에도 Ctrl+x->Ctrl+f로 파일명 완성, Ctrl+x->Ctrl+l로 전체 줄 완성 기능을 사용할 수도 있습니다.(더 자세한 내용은 :help ins-completion을 참조.) Vim 스크립트인 을 사용하면 탭으로 자동 완성 기능을 사용할 수도 있습니다.



2013/06/20 13:36 2013/06/20 13:36