IDE에서 표준이 아닌 VIM의 가장 유용한 기능 [닫기]


30

IDE 대신 VIM을 다시 사용해야하는지 고려하고 있습니다. IDE에서 표준이 아닌 VIM의 가장 유용한 기능은 무엇입니까?


3
어떤 IDE를 사용하십니까? 많은 IDE에는 VIM 플러그인이 있으므로 VIM을 사용하는 것처럼 편집 할 수 있습니다.
Brian R. Bondy

2
@ 브라이언 : 분명히 그들은 모든 고급 기능을 모방하지 않았습니까?
Casebash

1
아마 내가 사용한 것 이외의 모든 것이 VS에 좋습니다. 그들 중 적어도 2가 있습니다. viemu.comgithub.com/jaredpar/VsVim
Brian R. Bondy

2
@Brian R Bondy : 그들 중 누구도 vim의 모든 기능을 다루지 않습니다. 그들은 표면을 긁고 더 이상하지 않습니다
Daenyth

2
또는 당신은 정말로 현명하고 emacs대신에 사용하기 시작할 수 있습니다 . ;-)
Orbling

답변:


32

VIM의 고급 기능이 반드시 그렇게 강력하다고 생각하지는 않습니다. 그것은 키보드에서 손을 떼지 않아도 아무것도 할 수 없다는 사실입니다. 거대한 파일에서 무언가를 찾는 것은 몇 번의 키 입력만큼 간단합니다. 같은 창에서 여러 파일을 열고 닫는 것도 엄청나게 빠릅니다.

처음에는 직관적으로 보이지 않지만 시간 가치가 있습니다. 표준 IDE로 사용하지 않더라도 (예를 들어 일반적으로 Visual Studio 또는 Eclipse를 사용) VIM을 사용하여 IDE를 기다리는 것보다 훨씬 빠르기 때문에 파일을 빠르게 열고 편집 할 수 있습니다. 하중.

VIM 사용법을 배우는 데 시간을 투자하면 결코 후회하지 않을 것입니다. 나는 터치 타입을 배우는 것과 비슷하다고 말하고 싶습니다.


3
이 답변은 아마도 Vim에게 가장 유용한 기능 일 것입니다. 빔 프로그래밍 무엇이든 쉽게 IDE의도에 적용 할 수있는, 그냥 텍스트 처리는 ... 결국입니다
타마라 Wijsman

4
+1 이맥스 신봉자이지만 같은 주장이 적용됩니다. 최신 IDE는 텍스트 편집기로는 "그래픽"이 아닙니다 .
Orbling

22

나에게 :global명령은 킬러 응용 프로그램입니다. 정규식과 일치하거나 일치하지 않는 모든 행에서 임의의 vim 명령을 실행합니다.

여기 몇 가지 예가 있어요.

기본 동작은 일치하는 모든 행을 나열하는 것입니다.

:g/TODO:/

"TODO :"라는 텍스트가 포함 된 모든 줄을 나열합니다.

'마우스'라는 단어가 포함 된 모든 줄에서 '미키'를 '미니'로 변경

:g/Mouse/ s/Mickey/Minnie/

명령은 자체 범위를 가질 수 있으므로 "TODO :"가있는 모든 행에서 다음 빈 행으로 삭제됩니다.

: g / TODO : /., / ^ $ / d

사용 : g! 정규식과 일치하지 않는 모든 행에서 실행 (예 : "sucks"라는 단어가 포함 된 행을 제외하고 "emacs"를 "vim"으로 대체) :

:g!/sucks/ s/emacs/vim/

전역 명령으로 훌륭한 트릭! 나는 그런 식으로 그들을 사용하려고 생각하지 않았습니다.
Xavier T.

Eclipse는 개별 파일, 프로젝트 또는 동일한 작업 공간의 프로젝트에서 파일의 정규식 검색을 지원합니다. 정규식 교체도 어느 정도 지원되지만 vim에는 훨씬 강력한 정규식 기능이 있다고 생각합니다.
Thomas Owens

16

짝을 이루는 심볼 세트 사이의 모든 것을 삭제하는 기능이 매우 유용하다는 것을 알았습니다. 예를 들어, 종종 코드에서 문자열을 바꾸고 싶다는 것을 알게 될 것입니다. 따라서 di"커서가 블록에있는 동안 ""그대로 유지하면서 문자열을 삭제 하고 두 따옴표 사이에 커서를 놓습니다. da"똑같은 일을하지만 따옴표 문자도 삭제합니다.


12
더 좋은 방법 ci"은 커서를 삭제하고 삽입 모드에 놓아 즉시 쓰기를 시작할 수 있도록하는 것입니다.
Konrad Rudolph

9

'삽입 모드 키워드 완성'. 삽입 모드에서 Ctrl-P 및 Ctrl-N을 사용하여 텍스트를 검색하여 입력하는 변수 이름을 모두 입력하십시오. 나는 다른 IDE에서 이것을 본 적이 없으며 정말로 그것을 놓쳤다. IDE의 코드 완성은 동일하지 않습니다.


2
또한이 적절한 완성을 전 사용, 당신이 원하는 경우 코드 완성. ^X^O삽입 모드에서 옴니 완료 (활성화 된 경우) 그러나 당신 말이 맞아요, 키워드 완성을 사용하는 것보다 옴니 완성을 훨씬 능가합니다.
Chinmay Kanchi

@Chinmay : 나는 "적절한"의 의미가 거꾸로 있다고 생각합니다. 적절한 코드 완성은 코드 대신 텍스트를 작성하는 경우에도 로컬 원칙을 사용하여 모든 것을 완료합니다.
ninjalj

SlickEdit도 비슷한 기능을 가지고 있습니다. 그리고 그것은 매우 IDE와 유사합니다
user281377

8
나는 완전히 동의하지 않습니다. 최신 IDE (Visual Studio, Eclipse 등)는 Ctrl-N과 쉽게 경쟁 할 수있는 일종의 코드 완성 기능을 제공합니다 . IDE에서 이것을 보지 못했다면 현재 버전을 다시보십시오. 그리고 Omni-Complete은 불행히도 제대로 작동하지 않습니다.
Konrad Rudolph

8

내가 매우 유용한 다른 기능은 들여 쓰기를 변경하는 기능입니다. :15,30>>15-30 (포함)의 모든 줄을 두 번 :15,30<<들여 쓰고 같은 줄을 두 번 들여 쓰기합니다.


필자는이 기능을 좋아하지만 거의 모든 IDE에 블록 들여 쓰기 (및 들여 쓰기)가 있습니다.
Sean McMillan

나는 =보다 유용하지는 않지만 <<and 보다 유용하다고 생각 >>합니다.
greyfade

6

dd 명령 (현재 줄 삭제) 나는 이것을 많이 사용합니다.

또한 3dd와 같은 것을 입력하고 다음 3 줄을 삭제할 수 있다는 것은 훌륭합니다. 나는 다른 편집기에서 이것을 본 적이 없다 = D


Netbeans는 거의 이것을 가지고 있으며, 선택하지 않은 ^ X 는 현재 행 을 잘라 냅니다.
Alan Pearce

@Alan : 아니요, NetBeans에는 jVi가 있습니다.
Dr Hannibal Lecter

^ K는 행을 삭제하고 ^ u3 ^ k는 emacs에서 3 행을 삭제합니다. shift-delete는 Visual Studio에서 동일하게 수행됩니다.
Raoul

Alan : dd는 p를 사용하여 나중에 삽입 할 수 있다는 점에서 현재 행을 잘라냅니다 .
user281377

3
@Raoul, 우리는 모든 vim 명령을 복제하는 emacs 시리즈의 n 3 키 조합이 있다는 것을 알고 있습니다. 여전히 3dd는시입니다.
cbrandolino

6

c명령. 예를 들어, ci"따옴표 내부를 변경합니다. cw단어를 바꾸려면 그것으로 많은 유용한 트릭.



3

Esc ! }같은 명령 행 필터에 현재 단락을 밀어 것 fmt또는 wcwhich편집자에게 반환 결과.


3

명령 줄에 빠르게 액세스 할 수 있습니다. CTRL + Z 또는 : wqa는 키보드에서 손을 떼지 않고도 1 초 이내에 명령 줄을 표시합니다.


1
+1 마지막 작은 부분은 거의 모든 이점을위한 중요한 부분입니다 . 키보드를 손으로 두지 않고
Orbling

... 또는 :!/bin/bash. 나는 :!자주 사용 합니다.
greyfade

나는 보통 다음을 사용한다:sh
David Brown

3

hjkl키보드의 홈을 떠나지 않고도 커서를 움직일 수 있습니다 . 키 바인딩을 변경하고 스크롤에 Vim 이동 키를 사용하도록 설정하는 대부분의 프로그램 (예 : PDF 리더)이 있습니다.


1

질문의 모호함과 IDE의 차이점으로 인해 대답하기가 다소 어려우며 많은 사람들이 다른 기능과 다른 기능을 제공하지 않습니다 (그리고 내가 몇 가지만 가지고 있다는 사실).

그러나 Vim을 다른 편집자와 구별 할 수 있다고 생각합니다 (예, Emacs조차도)는 정말 훌륭한 편집자라는 것 입니다. 나는 시간이 지남에 따라 많은 편집자를 사용했으며 Vim처럼 텍스트를 조작하는 완벽한 기능 세트가 거의 없다고 솔직하게 말할 수 있습니다.

예를 들어, 텍스트를 조작하는 스타일에는 아주 자주 (여러 줄의 선 / 선택) 복제 및 여러 줄의 선 / 선택) 위 / 아래 이동이 포함됩니다. 대부분의 IDE에서 이러한 기능이 누락되었습니다 (VS ReSharper에 비슷한 기능이 있다고 들었지만).


1

당신은 일식에 대한 vi 플러그인 이 있다는 것을 알고 있습니까? 그것은 15유로 (20ish US $)를 비용 그러나 그것은이다 그래서 가치. 더 이상 dd문서의 중간에, 작은 유용한 것들을 모두 잃어 버렸습니다.

아마도 조금 벗어난 주제이지만 지적 할 가치가 있다고 생각했습니다.


0

프로그래밍하는 언어에 따라, 아이디어를 고수하거나, 가장 많은 리팩토링을 제공하는 아이디어를 얻거나, C #을 수행하는 경우 Visual Studio를위한 선명도를 얻고, Java를위한 intellij 또는 Visual Studio를위한 시각적 지원, 일식 또는 넷빈에서 리팩토링을 최대한 활용하십시오.

우리는 텍스트 조작에서 코드 조작으로 이동해야합니다. 리팩토링 도구는 그러한 기능을 제공합니다. vim이 모든 기능을 제대로 제공한다면 더 이상 텍스트 편집기를 다루고 싶지 않습니다.


3
이것은 거의 말도 안됩니다. 예, 리팩토링은 중요한 도구이지만 코드 자체는 작성하지 않습니다. 훌륭한 텍스트 편집기 는 훌륭한 리팩토링 도구보다 프로그래머의 생산성 에 훨씬 더 기여 합니다.
Chinmay Kanchi

-1

테이블 열 선택

이것은 인기있는 IDE에없는 것 같으며, 그렇다면 IDE를 잘 숨기십시오. 이것은 CSV 데이터 파일의 열에 대해 정규식을 테스트하는 데 정말 편리합니다.


-3

대부분의 IDE에서는 화면을 분할 할 수 없습니다. 저는 VIM에서 그 기능을 좋아합니다.


5
대부분의 IDE는 그렇지 않습니까? 나는 적어도 실제로 사용한 것들, 대부분 실제로 그렇게 생각합니다.
Anto

몇 가지 예를 들어 줄 수 있습니까?
projecktzero

1
대부분의 IDE 핸들 화면은 Vim / Emacs와 다르게 분할됩니다. 그들은 일반적으로 탭으로 그것을합니다. 키보드로 조작하기가 더 어렵거나 불가능합니다 (Emacs에서 50 개의 파일을 여는 것과 Eclipse에서 50 개의 파일을 여는 것을 비교하면 Emacs가 빨리 이길 것입니다).
jsternberg

분할 화면이 있습니까 대부분의 IDE는 탐색의 쉬운 방법을 제공하지 않습니다 / - 라 조정<C-w>
웨인 베르너
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.