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.