2011년 2월 18일 금요일

[Vim] Plugin: FuzzyFinder

프로그래머의 친구 Vim (emacs는 엄마친구아들-_-) 포스팅

FuzzyFinder는 파일을 열 때 쉽게 열 수 있게 도와주는 Vim 플러그인이다. (정확하게 파고들면 엄청 대단한 기능들이 많지만...) 약자로 fuf라고 칭하도록 하겠다.

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

설치방법은 압축 풀면 나오는 디렉토리 들을 간단히 ~/.vim/ 에 (윈도우의 경우 Vim이 설치된 디렉토리의 vimfiles 폴더에) 복사하기만 하면 된다.

구버전은 fuf 만으로도 잘 돌아갔지만 최신 개발 버전은 L9 라이브러리를 요구하고 있다. 동일 개발자가 라이브러리 부분만을 별도로 분리했나 보다.

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

역시 최신버전 받아서 동일하게 설치.

Fuzzy 알고리즘인지 뭔지를 이용해 파일이름의 패턴을 검색해 준다고 하는 편이 좋을지도 모르겠다. 하여간 좋다 -_-

~/.vimrc(윈도우의 경우 Vim 디렉토리 아래의 _vimrc) 파일을 좀 편집해 두는 편이 좋겠다.

filetype plugin on
플러그인 불러들이도록 해 주고...

let g:fuf_file_exclude = '\v\~$|\.(o|exe|dll|bak|swp|class|pyc|orig)$|(^|[/\\])\.(hg|git|bzr)($|[/\\])'
파일 목록을 표시할 때 표시하지 않을 확장자를 설정한 부분이다. 나는 기본 목록에 pyc를 추가했다.

map <leader>ff :FufFile **/
map <leader>fb :FufBuffer
noremap <silent> <c-]> :FufTagWithCursorWord!
단축키 설정이라고 보면 된다. <leader>라는 키는 임의로 바꾸지 않았다면 기본적으로 백슬래시(\)가 설정되어 있다. 즉, ESC를 한번 눌러서 커맨드모드로 바꾸고 \ff를 입력하면 파일 오픈 모드가 된다. \fb를 누르면 버퍼 변환 모드, Ctrl-] 를 누르면 태그 검색 모드가 된다.

Vim의 기본 e커맨드와 비교해서 좋은 점은:
  • 서브디렉토리까지 몽땅 검색해서 파일 리스트를 만들어 준다는 점
  • 약자 검색(예를 들어 ThisIsTest 를 검색할 때 tit 혹은 This* 이런 식으로 입력하면 자동선택)이 가능한 점(이 부분에 fuzzy 알고리즘이 사용된다)
정도다.

fuf의 단점이 한가지 있다면 TAB 자동완성 기능. :e filename 이런 식으로 파일을 열기 위해 파일이름을 입력할 때 TAB을 누르면 자동완성을 해 주는데 FufFile을 사용할 때 TAB을 누르면 텍스트로 TAB(혹은 공백)이 편집기 창에 입력되어 버린다. -_-

ps. 구버전 fuf에서는 file exclude list를 설정하는 옵션 이름이 g:FuzzyFinderOptions.File.exclude_path 였다. 설정 했는데 왜 동작안하나 했더니 이름이 잔뜩 바뀌었던 것이다. 혹시나 구버전 설정을 보고 있다면 주의해야 할 것이요~~;;

댓글 없음 :