LUC1EL: BLOG

VIM을 IDE 처럼 사용하기 본문

소프트웨어 개발/개발환경, 툴, 스크립팅

VIM을 IDE 처럼 사용하기

LUC1EL 2012. 10. 18. 18:20

오늘은 VIM이 왜이리 불편해보이는지.. ㅎㅎ 손이 아퍼서 그런가 IDE 처럼 꾸며봐야겠다는 생각에 여러가지 검색을 해봤는데, 뭐 NerdTree라든지 이런 것들은 VIM 초기실행을 느리게 하는 등의 문제로 그냥 무시하고 꼭 필요한 것만 찾아서 구성해봤다.


IDE처럼 쓰려면 세가지가 기본적으로 되야 한다고 생각하는데 그 첫번째로


1. Project Plugin

프로젝트 플러그인은 내가 지정한 어떤 디렉토리를 어떤 옵션하에 리스팅 해주는 플러그인이다. 옵션에는 어떤 파일을 가져올지에 대한 파일 확장자 필터링과 그 파일을 오픈할 때 디렉토리 체인징에 대한 설정등이 있고 또 플래그도 있는데 플래그는 무시하도록 하자.


다운로드:

http://www.vim.org/scripts/script.php?script_id=3811\


플러그인 설치법은 포스트하지 않겠다.(조금만 찾아보세요! 너무 간단해요) 

설치하고 나서 :Project를 입력해보자. 


이 화면이......


이렇게 바뀐다.


뭐 보기엔 딸랑 VERTICAL 버퍼가 하나 생성된 것 뿐이지만 저 버퍼는 project.vim 스크립트에 의해 아주 특별한 버퍼가된 상태이다.


F5키를 누르면 지정한 디렉토리의 파일 목록 내용이 새로고침되니 기억해놓고 있자.


자 그럼 이렇게 열기는 했는데 무엇을 하느냐 Project.txt를 보라며 참 복잡하게 해놓은 설명글들을 읽어보면 좋겠지만 영어 난독증 가지고 계신 분들은 무시하고 이 포스트와 함께 속성만 배워보자.


@ 시작하기

!! vim은 매우 TEXTICAL(?) 한 인터페이스이기 때문에 화려한 GUI를 요구하시는 분은 ECLIPSE나 SUBLIME TEXT 에디터를 다운로드를 하시길 바람;


CTRL + W, H 키를 누르면 방금 생성된 프로젝트 버퍼로 커서가 이동된다.
다음과 같이 한번 입력해보자


MyProject="/" CD=. filter="*.php" {

}

!! 윈도우즈 사용자도 /가 루트가 된다. (C:\) 안먹으니 쓰지 말자 일단 난 안됨 ㅠㅠ


이렇게만 입력하고 F5키를 눌러보자 그렇다면 짜잔, 짜잔은 무슨 정상이라면 아무것도 안나온다. 왜냐면 필터를 *.php로 해놨으니 정상적인 프로그래머시라면 C 루트에 php파일이 존재할리가(있나?) 없을 것 같아서 하는 말이다. 


그럼 필터를 *.*으로 바꾸고 다시 F5키를 눌러보자 짜잔~ 이렇게해도 안나오면 아무곳이나 지정해보자 (C루트에 파일이 숨겨진 파일 말고 정상적인 파일이 한개 이상 있어야 나온다)


이 포스트는 나의 오토셋 디렉토리를 해보았다.



"/wwwpub/"의 모든 파일이 목록으로 나오는 것을 볼 수 있다. 여기서 hjkl키는 당연하게도 먹고 마우스 왼쪽키도 작동하는데 마우스 왼쪽키를 누르면 파일이 오른쪽 버퍼에 오픈되는 것을 볼 수 있다.


:Project <파일명> 으로 파일을 오픈과 함께 플러그인 초기화할 수 있다는 팁도 알아두길 바라며 어찌보면 매우 간단하니 어렵지 않게 알았으이라 생각한다.


파일 저장은 VIM을 써보신 분들일테니 알아서 해보길 바란다.


2. Taglist Plugin

태그리스트는 현재 편집하는 문서의 타입을 인식하여 해당 문서에서 클래스, 변수이름, 함수이름을 파싱하여 표시해주는데 아주 유용한 플러그인이다.


다운로드:

http://vim.sourceforge.net/scripts/script.php?script_id=273


Taglist를 설치하면 다음과 같은 화면을 볼 수 있다.



왼쪽엔 프로젝트 플러그인 오른쪽에는 태그리스트 플러그인이다. 보면 알 수 있지만 함수이름들이 나열되어있고, 각 태그에 커서를 위치해 엔터키를 누르거나 마우스 왼쪽버튼으로 눌러주면 가운데 편집중인 스크립트에서 해당 함수로 이동한다.


태그리스트를 오픈하는 명령어는 :TlistOpen 혹은 TlistToggle이다. Open은 말그대로 오픈하고 두번째 다시 명령해도 이미 열려있다면 아무것도 하지 않는다 다만 Toggle은 이미 열려있다면 태그리스트 버퍼를 닫는다. 말그대로 토글이다.