대규모 응용 프로그램을 코딩 할 때 Vim 사용


17

Vim을 배우기 시작했고 여기에 stackexchange에서 제공되는 조언 중 일부를 따르십시오. 나는 일부 장난감 프로젝트에서 그것을 사용하기 시작했고 나는 그것을 좋아합니다.
그러나 나는 클래스의 이름이 어떻게 다른지, 다른 매크로에 포함 된 매크로 등을 알기 위해 항상 다른 파일을 열지 않고도 생산성을 높일 수있는 방법을 궁금해하기 시작했습니다.

당신이 줄 수있는 일반적인 조언은 무엇입니까?


1
도움을 받으려면 Vim 스크립트를 추가해야합니다. Vim을 사용하여 많은 프로그램을 작성했으며 항상 ctags를 사용하여 소스 코드를 탐색하는 데 도움을줍니다. 어떤 언어를 사용하고 있습니까?
tehnyit

답변:


10

IDE에서 콘솔 / xterm 환경으로 이동하는 숙련 된 프로그래머의 한 가지 측면은 소스 코드 객체 (함수 이름, 변수)의 색인화를 대체하는 것입니다. Microsoft Visual Studio에 사용되는 일반적인 용어는 Intellisense 또는 이와 유사한 용어라고 생각합니다 .

vim과 같은 유닉스 / 리눅스 세계 ctags에서 널리 사용되는 다국어 오픈 소스 구현 인 경우 사용되는 도구 중 하나 인 ctags가 풍부 합니다. vim구체적 이지 않으며 Emacs, CRiSP, vile 및 기타 여러 vi 클론, nedit, gedit, JED, UltraEdit, BBEdit 및 DreamWeaver를 포함한 여러 Unix, Linux, MS Windows, Mac OS 텍스트 편집기에서 지원됩니다. (이 중 일부는 타사 플러그인을 통해 제공됩니다).

좋은 디자인과 신중한 분해, 그 이상으로 큰 프로젝트를 구성하면 주어진 정보 ( typedef또는 class정의 등) 를 찾을 수있는 1-2 개의 명백한 잠재적 장소가 있다는 점에서 프로젝트를 관리 할 수 ​​있습니다 .

또한 vim의 여러 인스턴스를 사용하고 (종종 view소스 파일을 읽기 전용으로 볼 수 있음) vim 인스턴스 당 여러 편집 버퍼를 제한적으로 사용합니다 (주로 파일 간 코드 이동 또는 리팩토링). 한 번에 몇 개의 소스 파일 만 열면 작은 방식으로도 도움이 될 수 있으므로 작업에 계속 집중할 수 있습니다.


1
무성한 ctags 를 제안하는 +1 !
Attila O.

1
나는 단지 조직하는 것이 많은 도움이된다는 것을 안다. 소스에서 아티팩트를보고 "아,이 장소에서 정의해야합니다"라고하면 상황이 훨씬 간단 해집니다. vim 세션을 시작하는 장점은 너무 빠르기 때문에 한 번에 6 십만 개를 열면 꽤 정상적인 일이됩니다.
Zachary K

@ZacharyK 반 다스? 나는 보통 하루가 끝날 무렵에 십여 개가 있습니다
Izkata

하루에 따라
Zachary K

7

저는 VIM 대 IDE 토론에 ​​참여할 의향이 없습니다. 나는 그것이 개인 준비라고 생각합니다. 그러나 나는 많은 VIM을 사용하며 여기에 vim을 사용하는 것이 매우 강력하다는 이유가 있습니다.

답의 두 부분 :

A. VIM은 IDE로 할 수있는 대부분의 작업을 허용합니다.

  1. ctags활성화하고 수행 한 경우 프로토 타입을 탐색 할 수 있습니다.ctrl+{

  2. 여러 개의 창을 동시에 열 수 있습니다 : sp 'filename'명령. 물론, 때로는 인생을 더 쉽게하기 위해 여러 터미널을 열었습니다.

  3. 강력한 구문 강조. 다른 것들뿐만 아니라 기본값. 또한 일부 IDE와 달리 열린 중괄호가 일치하지 않거나 문자열이 닫히거나 닫힌 중괄호와 일치하지 않으면 매우 명확한 표시를 제공합니다. 그것은을위한 대부분의 언어가 아닌 특정.

  4. ":!make"창을 벗어나지 않고 명령 을 사용하여 명령 줄을 실행할 수 있습니다 .

  5. 트래버스 훨씬 빠른 검색 (당신이 사용할 수있는 경우 VI 지원 정규 표현식)를 기반으로, 단어를 기반으로, 당신은 통과 할 수 {} 사용ESC %

  6. 단계 디버깅을 수행하고 vi (코드에서 작업하기 위해 다른 창에서)를 유지하면서 GDB에서 작업을 수행 할 수 있습니다. 파일 변경을 결정하면 GDB에서 다시 만들고 다시로드 할 수 있습니다.

B. VIM에서 더 나은 것들을 많이 발견합니다.

  1. 검색 및 교체가 훨씬 강력합니다.

  2. 당신은 당신의 커스텀 룩앤필과 (화이트 + 블루와 같이 블랙 + 그린) 그리고 더 중요한 것은 당신 자신의 강력한 명령을 만들 수 있습니다.

  3. 수직 블록 선택. 시도 ctrl+v및 수직으로 커서를 이동합니다. 이것은 실제로 상상할 수없는 기능입니다!

  4. 더 이상 들리지는 않지만 블록을 잘라내거나 복사하여 30 번 지나야합니다! 한 번만하는 것보다 더 많은 노력이 필요하지 않습니다. 또한 활동을 한 번 또는 여러 번 다시 실행 (실행 취소하지 마십시오)하십시오.

  5. 자동 들여 쓰기, 탭 제어 및 특정 스타일의 주석 또는 차단 주석에서 주석을 변환하는 자동 방법.

  6. vimdiff와의 효과적인 병합 충돌

  7. 콘솔 기반 작업 환경에서 가장 중요한 것은 마우스를 절대 만지지 마십시오! 따라서 키 보드가 빠르면 IDE는 좋지 않습니다.

  8. 여러 기계, 서버에서 동시에 작업하십시오! 눈에 띄지 않지만 때로는 서버에서 작업 할 때 여러 컴퓨터에 직접 로그인하여 작업을 수행합니다.

이러한 기능이 심각하게 요구되는 경우 vi에서 수행하는 방법에 대해 답변합니다. 이 사이트 Vimcast를 참조하십시오 . 물론 많은 것이 있습니다.

그러나 그렇습니다. 대부분의 콘솔 기반은 구식이며 IDE에 대해 아무 말도하지 않습니다.


작은 메모 : vim에는 :make명령이 내장되어 !있으므로 vim을 사용하지 않는 사람들은 터미널에서 명령을 실행하지 않아도됩니다. 방금 ctrl-v몇 주 전에 찾았 습니다. 이제 계속 사용하고 있습니다. 매우 유용합니다.
케빈

@Kevin-알았어 <code> : make </ code>에 대해 몰랐다! 이것은 흥미로웠다. 이것은 VIM과 함께하는 일종의 로맨스입니다. VIM이 할 수있는 기능의 전체 목록을 만들 수는 없습니다. 항상 당신을 놀라게합니다. 감사.
Dipan Mehta

그래, 정말 좋아 의 장점은 :make자동으로 첫 번째 오류로 이동한다는 것입니다, 당신은 그들을 탐색 할 수 있습니다 cncp참조하십시오 :help make. 나는 실제로 그것을 찾을 때까지 그것을 몰랐다. 나는 보통 다른 창과 pwd에서 만들지 만, 루트로 이동하여 만들려면 src 디렉토리에 파일을 넣을 수는 있지만 Makefile과 동일한 파일에 있어야합니다.
케빈

4

내 의견으로는 Vim은 기본 기능을 갖춘 매우 강력한 편집기를 제공하지만 프로젝트에서 가장 많이 사용하는 스크립트 / 애드온으로 구성하는 것은 귀하의 몫입니다. 스크립트, 문서 또는 컴파일해야하는 파일을 주로 편집하는지 여부에 따라 다를 수 있습니다.

예를 들어, 내가 사용 zencoding, 가끔 HTML / CSS를 편집 snipmate하기위한 TextMate와 같은 조각, 그리고 파이썬 관련 추가 기능의 커플 ( pyflakes, pep8, vimpdb파이썬은 내가 가장 자주하는 일이다, 코딩 등).

그럼 내가 자주 사용하지 않는 것이 다른 애드온이있다,하지만, 난 여전히 같은, 한 동안마다 그들이 도움이 DpasteConqueTerm.

그래도 Vim의 가장 유용한 기능은 내장되어 있습니다 (시간 기반 실행 취소, 빠른 탐색, 범위 필터 등). 찾을 수 없었거나 액세스하기 쉽지 않은 것들 ) IDE에서. 당신은 당신이 정말로 필요로한다는 IDE의 비트와 조각을 가지고 당신의 빔을 설정 그래서 일단 ( snipmate, ctags...) 당신은 모두 IDE와 콘솔 환경에서 혜택을받을 수 있습니다.

Vim을 사용하는 것은 콘솔 전용이므로 이러한 도구가 Gvim에 얼마나 도움이되는지 말할 수 없습니다.

모든 부가 기능의 장점에도 불구하고, 나는 아직도 자신이 실행 찾을 !grep ...또는 ^Z + find ...모든 이제 다음.


3

나는 모든 프로그래밍을 vim으로한다. 실제로 사용했던 IDE보다 훨씬 쉽습니다. 동일한 화면에서도 여러 파일을 동시에 열 수 있습니다 (탭 및 창 찾아보기). 나는 일반적으로 X에서 일하고 있으므로 여러 (6) xterm 화면이 열려 있습니다. 하나는 vim의 c 파일 (여러 탭), 다른 하나는 vim의 헤더 (탭) 및 비 vim 창 : 빌드, 디버그 순수한 콘솔을 사용하는 경우에도 탭, 창 및 코드 접기를 사용하여 필요한 것을 볼 수 있으며 vim을 종료하지 않고도 맨 페이지를 작성하고 볼 수 있습니다. 올바른 명령. 그리고 많은 사람들이 있습니다. 나는 그들 중 절반도 마스터하지 않았다고 확신합니다. 그리고 vim의 검색과 교체를이기는 것은 어렵습니다.


1

많은 대규모 응용 프로그램이 (최소한 2 개) 만들어졌으며 내 추측에 따르면 더 많은 응용 프로그램이 Vim으로 완전히 작성됩니다. IDE는 여전히 현대적인 혁신 입니다.

그러나 일반 바닐라 vi (ouch) 또는 Vim은 약간 부족합니다. 아는 빔 및 그 방법 중 일부의 생각은 약간의 도움, 그리고 플러그인은 많은 도움이 되는, www.vim.org 의 끝없는 소스입니다. 사용중인 언어에 특정한 일부와 주석 처리, 파일 찾아보기 등의 일반적인 언어 는 매우 빠른 개발 환경으로 빠르게 전환됩니다. 결국 IDE는 더 좋은 인터페이스에 플러그인이 포함 된 편집기 일뿐입니다. IDE에는 그래픽 이 많지 않습니다 .

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