VIM 만 사용하여 대규모 프로젝트 (수백 개의 파일)를 어떻게 관리합니까?
나는 개인적으로 작은 프로젝트보다 더 큰 문제를 겪기 시작합니다.
- 가급적 이름 완성으로 ‘파일로 이동’하는 방법이 있습니까?
- 다른 파일에있을 때 ‘클래스 정의로 이동’과 동일
나는 모든 VIM 기본 사항을 알고 있기 때문에 스크립트를 작성하거나 일부 소스 코드를 빠르게 편집하는 데 문제가 없습니다. 그러나 파일 사이를 탐색해야 할 때 정말 지저분합니다.
답변
VIM은 태그에 대한 탁월한 지원을 제공 합니다 . 프로젝트에 대한 태그 파일을 만든 후에는 동일한 편집 세션 내에서 파일 건너 뛰기를 포함하여 메서드, 클래스 등의 정의 또는 선언으로 이동할 수 있습니다.
시험
:help tags
C / C ++ 용 태그 파일을 생성하려면 쉘 프롬프트로 이동하여 (시스템이 * nix / Cygwin이라고 가정합니다) 다음을 입력하십시오.
info ctags
또는
ctags --help
답변
저는 간단한 솔루션을 좋아합니다. 현재 가장 좋아하는 탐색 방법은 다음과 같습니다.
추가 ~/.vimrc.local
set path=$PWD/**
그런 다음 편집기에 입력하여 현재 작업 디렉토리 (pwd)에서 파일을 찾습니다.
:find user_spec.rb
파일 이름에 탭 완성을 사용하여 여러 선택 항목을 찾을 수도 있으므로이 TextMate 변환이 매우 만족 스럽습니다.
답변
NERDTree (디렉토리 사이드 바), FuzzyFinder Textmate (TextMate의 CMD + T와 같은 파일로 이동) 및 세션 (: h 세션)의 조합을 사용하여 대규모 프로젝트를 처리 할 수 있습니다.
세션 도우미 플러그인을 사용하는 것이 좋습니다. 내가 사용하는 것을 언급하고 싶지만 아직 만족스럽지 않습니다. 그냥 구글 “vim 세션”.
FuzzyFinder Textmate를 작동시킬 때 주목해야 할 점은 FuzzyFinder 플러그인, 특히 v2.16의 이전 버전에 의존한다는 것입니다. 더 높은 값이면 오류가 발생합니다. 그러나 그것은 분명히 문제의 가치가 있습니다. 이름 완성 기능은 없지만 검색이 현명하므로 검색 fro/time/actionsphp
하면 파일이 apps/(fro)ntend/modules/(time)_tracking/actions/(actions).class.(php)
표시 됩니다 (괄호는 일치하는 항목을 나타냄). 폴더 이름으로 만 고유 한 파일을 매우 쉽게 선택할 수 있습니다.
답변
뿐만 아니라 귀중한 ctags 및 다양한 관련 명령. 또한 프로젝트 플러그인 없이는 살 수 없었기 때문에 관심있는 파일을 별도의 창에 프로젝트와 연결할 수 있습니다. 내 설정이 얼마나 많이 사용자 정의되었는지 기억할 수 없지만 Debug.c라는 소스 파일을 열려면 다음을 누르십시오.
<F12> " Opens the project pane
/De " Searches for "De", which is likely to be enough to find Debug.c or possibly Debug.h
<ENTER> " Opens the selected file and closes the project pane
나는 종종 다음을 수행합니다.
:vsp " Vertically split the window
<F12> " Reopen project pane
# " Search back to find previous entry with the same name (to find
Debug.h if I was on Debug.c: my headers are in Headers/ and
my source is in Source/, so the headers come earlier in the list
than the source). I use * to go the other way, obviously.
<ENTER> " Open the header file in the other window and close the project window.
이 비교적 짧은 시퀀스를 사용하여 모든 파일을 열 수 있으며 수직 분할로 헤더입니다. 프로젝트 플러그인 창은 텍스트 파일이기 때문에 Vim의 검색 기능을 사용하여 완성됩니다.
답변
Vim 7.3부터는 :find
명령에 파일 이름이 탭으로 완성됩니다.
당신이 당신의 설정이 경우 'path'
전체 프로젝트를 포함 할 옵션을 (아마도 사용 **
후, 당신은 사용할 수 있습니다, 재귀 적으로 검색 하위 디렉토리를 허용하는 와일드 카드) :find
, :sfind
, :tabfind
프로젝트의 모든 파일에 도착 완공 등의 명령을. 또한 gf
include 지시문과 같이 파일 이름이 텍스트에있는 경우 및 친구 와 직접 파일로 이동할 수 있습니다.
이 방법을 사용하면 특정 파일을 탐색하는 데 외부 도구 나 플러그인이 필요하지 않습니다. 그러나 그것은 확실히 빠르거나 사용하기 쉽지 않을 수 있으며 정의로 넘어갈 필요성을 해결하지 못합니다. 정의를 위해 다른 답변에서 제안하는 것처럼 ctags를 사용합니다.
답변
다른 포스터에서 권장하는대로 ctag를 사용하고 있다면 taglist 플러그인 을 확인하십시오 .
시간을내어 문서를 읽고 키 바인딩을 배우십시오. 다음은 TList 창에서 시작하는 데 도움이되는 몇 가지 사항입니다.
- o-새 창에서 파일 열기
- t-새 탭에서 파일 열기
- [[또는 백 스페이스-목록의 이전 파일
- ]] 또는 탭-목록의 다음 파일
답변
무성한 ctags.
Ctrl-]를 사용하여 커서 아래의 태그로 이동합니다.