Vim을 보완하기위한 최고의 범용 프로그래밍 툴은 무엇입니까? [닫은]


22

나는 Vim을 잠시 동안 텍스트 편집기로 사용하고 있으며, 나는 무엇이든하기 위해 먼 길을 가고있는 것처럼 느낍니다. 탐색을 위해 코드베이스에 태그를 지정하기 위해 ctags를 사용하고 비효율적이지만 grep을 사용하여 특정 메소드가 사용되는 위치를 찾습니다. 그러나 내가 알지 못하는 매우 유용한 도구가있어서 생산성을 높일 수 있다고 생각합니다.

Vim을 보완하는 일반 프로그래밍에 사용할 수있는 최고의 소프트웨어 스택은 무엇입니까? 코드베이스를 탐색하고, make를 실행하고, 소스 제어 시스템에 변경 사항을 푸시하는 등의 방법 Vim 옆에 두 번째 콘솔이 열려 있습니까?


2
Vim 자체. 해당 작업에 올바른 플러그인 / 스크립트를 사용하고 있지 않을 수 있습니다. 어떤 종류의 프로그래밍을하고 있는지, 어떤 언어를, 어떤 다른 도구를 필요로하는지 등에 따라 다릅니다.
bitek

내가받을 응답에 영향을 미치지 않도록 언어를 지정하지 않았습니다. Vim 플러그인은 유용하지만 실제로는 찾고 있지 않습니다.
Louis Salin


나는 이것을 커뮤니티 위키로 만들었다. 내 질문에 대한 최선의 대답은 없다는 것을 깨달았습니다. 답변 해 주셔서 감사합니다!
Louis Salin

답변:


8

vim 의 가장 큰 특징은 기존 쉘 명령과 쉽게 통합 할 수 있다는 것입니다. 가장 유용한 외부 도구 중 일부는 coreutils 및 기타 간단한 텍스트 조작 도구에 포함 된 도구입니다. 예를 들어 파일의 줄 수는 다음과 같습니다.

:! wc -l %

또는 단어 수 :

:! wc -w %

쉘에서 작동하는 모든 명령이 여기에서 작동합니다. 이것은 명령 출력을 파일에 저장하기 위해 :read( :r) 명령 과 강력하게 결합 될 수 있습니다 . 예를 들면 다음과 같습니다.

:r !wc -l %

단어 줄 수를 편집중인 파일에 넣습니다.

이것의 또 다른 장점은 현재 편집중인 텍스트를 이러한 명령 중 하나의 출력으로 바꾸는 것입니다. 예를 들어 par다음 명령을 실행하여 전체 파일을 포맷 할 수 있습니다 .

:% !par

5

NERDtree는 코드베이스를 탐색하는 데 없어서는 안될 요소입니다. 그 외에도 버퍼 / 창 주위를 이동하는 데 능숙 해지는 데 시간을 투자하는 것이 정말 가치가 있습니다.


이 환상적인 플러그인에 대한 참조 +1. ( github.com/scrooloose/nerdtree )
noffle

4

어떤 언어를 사용하든 소스 정의를 탐색 할 수있는 ctags 기능을 사용하려고합니다 . 이를 위해서는 VIM이 프로젝트 내에서 다양한 코드 정의의 위치를 ​​찾는 데 사용하는 TAGS 파일을 생성하는 외부 도구가 필요합니다.

가져 오기 무성한의 ctags를의 도구를, 그것은 많은 많은 언어에 대한 작동 및 사용에 브이 간단하다.

VIM에서 :help ctags

ctags 는 소스 트리에서 모든 식별자의 인덱스를 생성합니다. 그런 다음 태그 명령을 사용하여 소스 트리를 탐색 할 수 있습니다. 참조하십시오 :help tag-commands. 가장 쉬운 방법은 키워드 위에 커서를 놓고 CTRL-를 누르는 것 ]입니다. 언론에서 온 곳으로 돌아가려면 CTRL-T

이 외에도 여기 에서 논의 된 VIM 팁과 개선 사항 중 일부를 살펴보고 싶을 수도 있습니다. 이는 비머의 경험을 향상시키기 위해 수행 할 수있는 것보다 몇 가지 사항에 대한 매우 포괄적 인 토론입니다.


내 질문에 ctags를 사용하고 있다고 언급했지만 어쨌든 답변 주셔서 감사합니다! :)
Louis Salin

4

Vim은 매우 강력한 도구입니다. 여러분 모두 이미 알고 있습니다. 몇 주 내에 vim을 사용하여 생산성 향상을 시작할 수 있습니다. 그러나 Vim에 대한 지식은 절대 포화시키지 않습니다. 그래서 저는 Vim에서 일을하는 새롭고 효율적인 방법을 항상 찾고 있습니다. Derek Wyatt 라는 사람 이 Vim 사용법과 그가 사용하는 플러그인에 대해 훌륭한 스크린 캐스트 를 수행했습니다 .

내가 사용하는 몇 가지 플러그인

  1. command-t 이렇게하면 파일을 쉽게 탐색 할 수 있으며 매우 지능적 입니다.

    Command-T 플러그인은 최소한의 키 입력으로 파일을 열 수있는 매우 빠르고 직관적 인 메커니즘을 제공합니다. TextMate의 Command-T에 바인딩 된 "파일로 이동"창에서 영감을 얻었 기 때문에 이름이 "Command-T"입니다.

  2. fuzzyfinder 나는 이것을 주로 broswer 버퍼를 사용하고 현재 디렉토리를 변경하는 데 사용합니다.

    FuzzyFinder는 원하는 버퍼 / 파일 / 명령 / 북마크 / 태그에 빠르게 도달 할 수있는 편리한 방법을 제공합니다. FuzzyFinder는 입력 된 패턴을 변환 한 퍼지 / 부분 패턴으로 검색합니다.

  3. NERDTree 이것은 vim을위한 최고의 파일 브라우저 플러그인입니다.

    NERD 트리를 사용하면 파일 시스템을 탐색하고 파일과 디렉토리를 열 수 있습니다. 키보드 및 / 또는 마우스로 조작하는 트리 형태로 파일 시스템을 제공합니다. 또한 간단한 파일 시스템 작업을 수행 할 수 있습니다.

  4. XPTemplate 세계 최고의 템플릿 플러그인입니다.

    스 니펫 라이브러리가있는 Vim 용 코드 스 니펫 엔진. XPTemplate을 사용하면 부드럽고 빠르고 편안한 방법으로 코드를 작성할 수 있습니다.

  5. rails.vim rails dev 작업을 수행하는 경우 필수 불가결합니다.

    TextMate는 Ruby on Rails 애플리케이션 개발의 최신 열풍 일지 모르지만 Vim은 영원합니다. 이 플러그인은 Ruby on Rails 애플리케이션 개발을 위해 다음 기능을 제공합니다.

  6. NerdCommenter 모든 종류의 코드에 주석을 수 있습니다.

그리고 그것들은 내가 사용하는 플러그인 중 일부입니다. vimrc로 모든 플러그인을 다운로드하려면 내 dotfile을 확인하십시오.


3

Syntastic 구문 검사를 수행하는 VIM 용 플러그인이 있습니다 . 파일 관리, 빌드 등에 사용할 수있는 다른 도구가 많이 있습니다. freenode.net의 IRC #vim으로 이동하면 도움이되는 사람들이 많이 있습니다.


3

내가 가장 좋아하는 것은 cscope입니다. cscope 지원으로 vim을 컴파일 한 경우 VIM에서 cscope 명령을 직접 사용할 수 있습니다. 예를 들어 포함 된 파일, xyz 함수에 의해 호출되는 함수 검색 등. 매우 큰 소스 코드 저장소로 시도했습니다. 많은 도움이됩니다.

http://cscope.sourceforge.net/cscope_vim_tutorial.html


1

GCC (C, C ++, Java, Fortran)에서 지원하는 언어로 프로그래밍하는 경우 Clewn 은 GDB 디버거를 VIM에 통합하는 훌륭한 플러그인입니다. 실제로 그것이 그것이 존재하는 GDB에 대한 최고의 인터페이스 중 하나라는 것을 알았습니다.


0

나는 보통 screen각 프로젝트마다 세션을 설정했다 . Vim은 창 0에 있으며 쉘 세션에 창 1을 사용합니다. 적절한 REPL이있는 언어로 코딩하는 경우 일반적으로 창 2에서 실행합니다. 물론이 작업을 수행 할 필요는 없습니다 screen. 다른 터미널 창이나 멀티탭 터미널의 탭으로 수행 할 수 있습니다. 나는 찾을 수 있습니까 screen다른 대안보다 더 안정 : 터미널 응용 프로그램이 충돌하는 경우, 당신은 당신의 여전히 실행에 다른 단자와 재 연결을 시작할 수 있습니다 screen세션. screen일단 배우면 (vim 자체처럼) 탐색하는 것이 매우 빠릅니다.

나는 대부분 rebasing 또는 merging과 같은 복잡한 버전 제어 활동을 위해 쉘 세션을 사용합니다. vim의 명령 줄 (예 : :!git commit % -m 'Added info aboutscreen .') 또는 도망자 애드온 을 사용하여 더 간단한 작업을 수행 할 수 있습니다 . 나는 도망자 :Gmove(vim과 git 인덱스에서 현재 버퍼의 이름을 바꿉니다)와 :Gdiff(이력에서 이전 지점으로 현재 버퍼에서 vimdiff를 호출합니다) 특히 유용합니다. 스크래치 버퍼에 커밋 메시지를 작성하고 코드의 여러 부분에서 텍스트를 복사 한 다음 커밋하는 것과 같은 작업을 수행 할 수도 있습니다.:%!git commit -F /dev/stdin

또한 기능 / 통합 테스트에 쉘 세션을 사용하여 작업중인 대상에 해당하는 경우 (예 : 명령 줄 유틸리티를 작성하는 경우) 사용합니다.

당신이 작업을 할 수 있습니다 각 언어에 필요한 다른 부가있을 것 같습니다하지만 Vim의 quickfix 기능, 디버깅에 유용합니다. 또한지도로 시작하는 기능 키 또는 키 시퀀스로, 호출 다양한 기술을 사용하는 것 \또는 ,, 또는 사용자 정의 명령을 사용하거나 버퍼가 저장 될 때 자동으로 호출됩니다. 지금까지 나는 이것을 정말로 귀찮게하지 않았으며, 예를 들어 단위 테스트 또는 보푸라기 결과를 스크래치 버퍼로 읽습니다 :r !python -m doctest whatever.py. 코드를 수정하고 스크래치 버퍼로 다시 전환 u한 다음 실행 취소 한 다음 :r위 화살표 (대부분)를 눌러 해당 명령을 다시 가져옵니다. 그러나 어떤 언어로 작업 하느냐에 따라 애드온을 찾는 것이 좋습니다.

C, java 등 인기있는 컴파일 언어의 :make경우 빌드를 수행하고 빠른 수정 목록에 대한 지원이 잘 설정되어 있습니다. 그러면 :copenquickfix 버퍼를 표시 할 수 있습니다 . 한 줄에 하나씩 오류 목록이 표시됩니다. Enter한 줄을 치면 다른 창이 해당 파일의 해당 지점으로 이동합니다.

한 번에 여러 프로젝트로 작업하는 경우 :lmake오류 목록을 위치 목록에 저장하도록 정렬 할 수 있습니다 .이 목록은 빠른 수정 목록과 비슷하지만 단일 창이 아닌 단일 창과 연결됩니다. vim 인스턴스. :lopen현재 창의 위치 목록이 열립니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.