답변:
나는 최근에 fuzzyfinder.vim 과 사랑에 빠졌습니다 ... :-)
: FuzzyFinderFile을 사용 하면 이름이나 패턴의 일부를 입력하여 파일을 열 수 있습니다.
내가 일반적으로하는 일은 e .
(e-space-dot) 탐색 가능한 현재 디렉토리를 제공하는 것입니다. 그러면 /
텍스트 파일에서 단어를 찾는 것처럼 이름 조각을 검색 할 수 있습니다 . 일반적으로 충분하고 간단하며 빠릅니다.
:e.
).
:e.
하고 :E
있지만 : 현재 파일을 편집하고 아직 저장하지 않은 경우, 전자는 (같은 불평 :edit
후자는 수평으로 창을 분할 할 때, 때문에 "마지막 변경 이후로 쓰기"의 ()와 같은 :new
)를 사용하여 새 파일을 열 수 있습니다 (예 : 수정되지 않은 경우 둘 다 현재 파일을 새 파일로 대체 :edit
함).
:find
또 다른 옵션입니다.
내 프로젝트의 루트에서 vim을 열고 path
거기에 설정합니다.
그런 다음 다음을 사용하여 트리의 아무 곳에 나있는 파일을 열 수 있습니다.
:find **/filena< tab >
탭은 다양한 경기를 통해 자동 완성됩니다. ( **
경로를 통해 재귀 적으로 검색하도록 지시합니다).
:find
작업 디렉토리에 상대적인 경로를 가져 오기 때문에 유용하지 않습니다 . 질문 및 @romainl 답변은 stackoverflow.com/questions/28224168/…을 참조하십시오 . 작업 디렉토리에 상대적인 경로를 더 쉽게 얻기 위해 더 흥미로운 @strager 대답을 찾습니다.
CtrlP 플러그인 사용을 고려하십시오 .
Janus Distributive에 포함되어 있습니다.
"퍼지 일치"또는 정규식을 사용하여 현재 디렉토리, 열린 버퍼 또는 가장 최근에 사용한 파일에서 파일을 찾을 수 있습니다.
내가 뭔가를 놓치고 있지 않는 한, : e filename은 내가 찾은 가장 빠른 방법입니다.
탭을 사용하여 파일 이름을 자동 완성 할 수도 있습니다.
내 설정 에서 : FuzzyFinderTextMate (또는 Ctrl+ F)를 좋아합니다. 참조 http://weblog.jamisbuck.org/2008/10/10/coming-home-to-vim를
.vimrc 파일에 몇 가지 바로 가기를 사용합니다 (아래 정확한 구문).
90 %의 경우 현재 편집중인 파일과 동일한 디렉터리 또는 해당 편집 된 파일과 계층 구조에서 매우 가까운 디렉터리에있는 다른 파일을 열고 싶다는 사실을 기반으로합니다.
명령이 수행하는 작업은 다음과 같습니다.
,cd
: 현재 작업 디렉토리를 편집중인 현재 파일이있는 디렉토리로 변경합니다.
,e
: 현재 작업 디렉토리가 이미 채워진 파일을 엽니 다 . 따라서 파일 이름 만 지정 하면됩니다 .
다음을 .vimrc에 넣으십시오.
map ,e :e <C-R>=expand("%:p:h") . "/" <CR>
map ,cd :cd %:p:h <CR>
다음은 일련의 이벤트입니다.
,cd
-> 현재 작업 디렉토리는 이제 "/ home / prog"가됩니다.,e
-> 파일 이름 만 입력 할 수 있도록 ": e / home / prog"로 확장됩니다 (예 : test.h).,e
-> ": e / home"으로 확장tab
-> / home의 하위 디렉토리 순환enter
-> cd
원하는 디렉토리에 / home / prog,e
-> ": e / home / prog"로 확장내가 뭉치 중 최고라고 생각하는 command-t도 있습니다 (그리고 나는 그들 모두를 시도했습니다). 설치하는 것은 사소한 번거롭지 만 일단 설치하면 사용하는 것이 꿈입니다.
태그가있는 경우 (필요한 경우), "vim -t DBPlaylist"를 사용하여 "vim -t DBPlaylist"를 사용하여 클래스 또는 메서드 또는 c 함수의 이름으로 만 명령 줄에서 파일을 열 수 있으며 ": tag ShowList를 사용하여 vim 내에서 파일을 열 수 있습니다. ".
공통 디렉토리에서 파일을 편집하는 경우 :cd
해당 디렉토리로 이동 한 다음 :e
파일 이름에만 사용할 수 있습니다 .
예를 들면 다음과 같습니다.
:e /big/long/path/that/takes/a/while/to/type/or/tab/complete/thingy.rb
:sp /big/long/path/that/takes/a/while/to/type/or/tab/complete/other_thingy.c
:vs /big/long/path/that/takes/a/while/to/type/or/tab/complete/one_more_thingy.java
넌 할 수있어:
:cd /big/long/path/that/takes/a/while/to/type/or/tab/complete/
:e thingy.rb
:sp other_thingy.c
:vs one_more_thingy.java
또는 원하는 디렉토리에 이미 파일이 열려 %
있는 경우 현재 파일 이름에 대한 속기를 사용 하고 :h
수정 자 ( :help :_%:
) 를 사용하여 현재 디렉토리로 트리밍 할 수 있습니다 .
:e /big/long/path/that/takes/a/while/to/type/or/tab/complete/thingy.rb
:cd %:h
:sp other_thingy.c
:vs one_more_thingy.java
그리고 다른 사람들이 말한 것처럼 ex-line에서 파일 이름을 탭으로 완성 할 수 있습니다 (자세한 내용 :help cmdline-completion
은 참조).
이것은 정확히 당신이 찾고있는 것은 아니지만 많은 경우에 좋습니다 (모두는 아니지만).
VIM을 열고 버퍼에 파일 이름이있는 경우 해당 파일 이름에 커서를 놓고 gf. 그러면 이름이 같은 버퍼의 커서 아래에있는 파일이 열립니다. 그것은
:e CTRL+r CTRL+w
:b oldname
파일 열기를 허용하고, 자동 완성을 지원하며, 열기 위해 파일의 전체 경로 이름을 입력 할 필요가없는 세 가지 플러그인을 알고 있습니다 (파일이 &path
vim 옵션 의 디렉토리 중 하나에있는 경우 ). :
:e
/ :find
가 아니라 분할 작업에 있음)최근에 비슷한 기능을 가진 다른 플러그인을 보았지만 이름이 기억 나지 않습니다.
곧 : find는 자동 완성 기능을 지원할 가능성이 높습니다. 요즘이 주제에 대한 패치가 vim_dev 메일 링리스트에 배포되고 있습니다.
FuzzyFinder가 언급되었지만 모든 하위 디렉토리를 포함하도록 동작을 확장하는 FuzzyFinderTextmate 플러그인의 동작과 같은 textmate를 좋아 합니다.
fuzzyfinder.vim 버전 2.16을 사용하고 있는지 확인하십시오.-높은 버전은 플러그인을 중단합니다.
FuzzyFinder를 설치했습니다. 그러나 한계는 현재 디렉토리에서만 파일을 찾는 것입니다. 한 가지 해결 방법은 FuzzyFinderTextmate를 추가하는 것입니다. 그러나 문서와 설명에 따르면 안정적으로 작동하지 않습니다. 올바른 버전의 FuzzyFinder가 필요하고 Ruby 지원으로 컴파일하려면 Vim 사본이 필요합니다.
지금 시도중인 다른 해결 방법은 편집 세션을 시작할 때 필요한 모든 파일을 여는 것입니다. 예를 들어 키 디렉토리의 모든 파일을 엽니 다.
:args app/**
:args config/**
:args test/**
etc...
(이것은 아마도 수십 개의 파일을 열었을 수도 있지만 지금까지는 여전히 정상적으로 작동하는 것 같습니다.)
그 후 버퍼 모드에서 FuzzyFinder를 사용할 수 있으며 TextMate의 command-o
바로 가기 처럼 작동합니다 .
:FuzzyFinderBuffer
:tabe
가 다르면 새 탭에서 파일을 열고:new
창을 가로로 분할:edit
하며 새 파일을 열기 전에 현재 파일을 닫습니다.