ST2의 Ctrl+에 가장 가까운 ( "가장 가까운", "정확한"이 아님) P플러그인은 get ready… CtrlP 입니다. Command-T 또는 FuzzyFinder 와 같은 다른 유사한 플러그인이 있습니다 .
저는 CtrlP를 사용하고 마음에 듭니다.하지만 "플러그인이없는"결정을 진심으로 지원합니다. 가장 쉬운 방법은 아니지만 장기적으로는 효과가있을 것입니다.
파일 열기
파일을 여는 가장 기본적인 방법은 :e /path/to/filename . 고맙게도 탭 완성과 와일드 카드를 얻을 수 있습니다. 클래식 *및 **"모든 하위 디렉토리"를 나타내는 특수 카드 .
이 모든 것을 결합하면 다음을 수행 할 수 있습니다.
:e **/*foo<Tab>
포함 된 모든 파일에서 선택 foo작업 디렉토리 아래의 이름에 된 하거나 :
:e **/*foo/*bar<Tab>
포함 된 모든 파일에서 선택 bar이름에 포함 된 모든 하위 디렉토리 아래의 이름에 된foo .
물론, 그것은 :tabe[dit] , :sp[lit]및 :vs[plit]에서도 .
그러나 이러한 명령은 하나의 파일로 제한됩니다. 사용하다:next여러 파일을 여는 데 :
:next **/*.js
그리고 봐 :help arglist .
버퍼 간 점프
:b[uffer] 기본 버퍼 전환 명령입니다.
:b4 " switch to buffer number 4
:bn " switch to next buffer in the buffer list
:bp " switch to previous buffer in the buffer list
:bf " switch to first buffer in the buffer list
:bl " switch to last buffer in the buffer list
:b foo<Tab> " switch by buffer name with tab-completion
:b# " switch to the alternate file
이러한 명령과 그 친척 중 많은 수가 카운트를 허용합니다.
이 :ls명령은로드 된 버퍼 목록을 보여줍니다. 그러나 이것은 약간 "특별한"것입니다. 버퍼가 생성 될 때 버퍼에 번호가 할당되므로 1 2 5버퍼를 삭제 한 것처럼 보이는 목록을 가질 수 있습니다 . 이것은 약간 어색합니다. 그렇기 때문에 그 숫자로 버퍼로 전환하는 것이 너무 번거 롭습니다. 부분 이름 :b foo<Tab>또는 순환으로 전환하는 것을 선호합니다 .:bn :bp .
어쨌든, 여기에로드 된 모든 버퍼를 나열하고 프롬프트를 채우는 멋진 매핑이 있습니다. 버퍼 번호를 입력하고 다음을 누르십시오 <enter>.
nnoremap gb :ls<CR>:b<Space>
이 매핑을 사용하면 다음과 같이 간단하게 다른 버퍼로 전환 할 수 있습니다.
gb
(quickly scanning the list)
3<CR>
또는:
gb
(quickly scanning the list)
foo<tab><CR>
아이디어는 Bairui의 Vim 인포 그래픽 컬렉션에서 가져온 이 이미지 에서 비롯됩니다 .

Vim에는 또한 <C-^>(또는 <C-6>일부 키보드에서):b# 현재 버퍼와 이전 버퍼 사이를 이동할 수있는 있습니다. 두 개의 버퍼를 자주 번갈아 사용하는 경우 사용하십시오.
에서 버퍼에 대한 모든 읽기 :help buffers.
선언으로 이동
파일 내에서 gd또는gD .
프로젝트 내에서 Vim의 "태그"기능은 친구이지만 ctags 또는 cscope와 같은 외부 코드 인덱서가 필요합니다. 가장 기본적인 명령은 다음 :tag foo과 <C-]>메소드 이름에 커서를. 두 도구 모두 Vim에 잘 통합되어 있습니다. :help tags, :help ctags및:help cscope 있습니다. .
그만한 가치가있는 점은 태그 탐색을 광범위하게 사용하여 프로젝트 내에서 이동 합니다 (대부분 CtrlP :CtrlPTag와 :CtrlPBufTag명령을 사용 하지만 내장 명령도 사용). 제가 가장 좋아하는 "일반적인"버퍼 전환 방법은 이름입니다.
구성 배포
많은 Vim 사용자가 자신의 구성을 버전 관리하에두기 때문에 새 컴퓨터에 자신의 구성을 매우 빠르고 쉽게 설치할 수 있습니다. 생각해보세요.
편집하다
몇 달 전에는 오래된 Vim을 사용하여 원격 컴퓨터에서 작업해야했습니다. 적절한 Vim을 설치하고 내가 좋아하는 구성을 복제 할 수 있었지만 이번에는 "톱을 날카롭게하기"위해 가볍게 이동하기로 결정했습니다. 저는 신속하게 미니멀리스트를 구축하고 .vimrc잊혀진 몇 가지 기본 기능을 다시 살펴 보았습니다. 그 공연 후 저는 CtrlP가 그다지 필요하지 않다고 판단하고 제거했습니다. 기본 기능과 사용자 지정 매핑은 섹시하지는 않지만 많은 종속성없이 작업을 수행합니다.
파일 저글링
set path=.,**
nnoremap <leader>f :find *
nnoremap <leader>s :sfind *
nnoremap <leader>v :vert sfind *
nnoremap <leader>t :tabfind *
:find당신이 set path올바르게 하자마자 정말 위대한 명령 입니다. 내 설정으로 현재 디렉토리 아래에 ,ffoo<Tab>포함 foo된 모든 파일을 재귀 적으로 찾습니다 . 빠르고 직관적이며 가볍습니다. 물론, 나는 :edit및 친구들 과 동일한 완성 및 와일드 카드의 혜택을받습니다 .
프로세스를 더 빠르게하기 위해 다음 매핑을 사용하면 프로젝트의 전체 부분을 건너 뛰고 현재 파일의 디렉터리에서 재귀 적으로 파일을 찾을 수 있습니다.
nnoremap <leader>F :find <C-R>=expand('%:h').'/*'<CR>
nnoremap <leader>S :sfind <C-R>=expand('%:h').'/*'<CR>
nnoremap <leader>V :vert sfind <C-R>=expand('%:h').'/*'<CR>
nnoremap <leader>T :tabfind <C-R>=expand('%:h').'/*'<CR>
경고! 이 path옵션은 매우 강력합니다. 전술 값 .,**-works 나를 위해 하지만 내가 사용하는 언어는 표준 라이브러리가 없습니다. 적절한 값에 전적으로 의존 당신 이 필요합니다.
버퍼로 저글링
set wildcharm=<C-z>
nnoremap <leader>b :buffer <C-z><S-Tab>
nnoremap <leader>B :sbuffer <C-z><S-Tab>
위의 매핑은 빈 프롬프트와 함께 "wildmenu"에서 사용 가능한 버퍼를 나열하므로 메뉴를 탐색 <Tab>하거나 몇 개의 문자를 입력 한 다음 <Tab>다시 목록을 좁힐 수 있습니다. 위의 파일 매핑과 마찬가지로 프로세스는 빠르고 마찰이 거의 없습니다.
nnoremap <PageUp> :bprevious<CR>
nnoremap <PageDown> :bnext<CR>
이러한 매핑은 스스로를 말합니다.
태그로 저글링
nnoremap <leader>j :tjump /
이 매핑은 전체 단어 검색 대신 정규식 검색을 사용하므로 ,jba<Tab>태그를 찾을 수 있습니다 foobarbaz().
예, 퍼지 매칭은 중독성이 있지만 그것 없이도 생산성을 높일 수 있습니다. 그리고 비용의 일부로.
더 많은 편집
몇 가지 추가 팁 / 트릭…
Wildmenu 옵션
으로 활성화 된 "wildmenu" set wildmenu는 파일 / 버퍼 탐색을 더 쉽게 만듭니다. 그 동작은 조사 할 가치가있는 여러 옵션에 의해 결정됩니다.
wildmode Vim에게 "와일드 메뉴"의 작동 방식을 알려줍니다.
set wildmode=list:full
wildignore 모든 잔해를 걸러냅니다.
set wildignore=*.swp,*.bak
set wildignore+=*.pyc,*.class,*.sln,*.Master,*.csproj,*.csproj.user,*.cache,*.dll,*.pdb,*.min.*
set wildignore+=*/.git/**/*,*/.hg/**/*,*/.svn/**/*
set wildignore+=tags
set wildignore+=*.tar.*
wildignorecase다음을 검색 foo하고 찾을 수 있습니다 Foo.
set wildignorecase
파일 마크
augroup VIMRC
autocmd!
autocmd BufLeave *.css normal! mC
autocmd BufLeave *.html normal! mH
autocmd BufLeave *.js normal! mJ
autocmd BufLeave *.php normal! mP
augroup END
최근에 다른 사람의 ~/.vimrc. 버퍼를 떠날 때마다 커서의 정확한 위치에 파일 표시를 생성하여 어디에 있든 'J편집 한 최신 JavaScript 버퍼로 이동합니다. 대박.