2009-10-01 4 views

답변

11

내가 그들에게 모든 시간을 사용

  • 코드 블록을 주석,
  • 복사 및 코드의 이동 블록,
  • 확 잡아 당기는와라는 이름의 버퍼에 코드 블록을 삭제하고,
  • 편집 : 테스트 블록으로 대체.

주석 처리 :

  • 당신이 주석 처리 할 코드의 첫 번째 라인으로 이동,
  • 마르크이, 예를 들면,ma
  • :'a,.s/^/# 입력 블록의 끝으로 이동 입력 (또는 당신이 무엇을해야 주석 문자)

복사 및 이동 : 위와

  • 마르크 첫 번째 줄,
  • 복사/이동하려는 블록의 맨 아래로 이동
  • 다른 두 번째 마커를 입력하십시오. mb
  • 블록을 복사하려는 위치로 이동하고 :'a,'bco . 또는 :'a,'bmo .을 입력하여 resp를 복사하거나 이동하십시오. 당신이
  • 버퍼 a 또는 :'a,.ya A에 블록을 꺼낼 것이다 :'a,.ya a를 입력 꺼낼하려는 블록의 아래로 내려 가서
  • 위와

    • 마르크 첫 번째 줄 : 명명 된 버퍼에 그랬다

    버퍼의 현재 내용에 블록을 추가합니다.

편집 : 텍스트 블록에 대입 :

  • 마르크 첫 번째 줄은 위와 같이,
  • 당신이
  • 에 대체 할 블록의 아래로 내려 가서 입력 텍스트 블록에 subtitute 것 :'a,.s/search_string/replace_string/[gc]을. 마지막 슬래시 뒤에 'g'또는 'c'를 추가하면 일반적인 전역을 호출하고 기능을 확인할 수 있습니다.

편집 :'a (아포스트로피가) 마커 및 `a (역 따옴표가) 당신이 표시된 줄에 문자를 참조를 포함하는 행을 의미 기억, 말을 잊어 버렸습니다.

그래서 `ad`b (bactic-A-D-backtic-B)를 (B)로 표시된 'A'숯 까지 전에 문자로 표시된 문자의 라인의 텍스트를 삭제하는 유용한 작은 조각이다.

Vim에서 :reg을 입력하면 모든 레지스터의 내용을 알 수 있습니다. 귀하의 삭제 레지스터.

3

대용량 파일로 이동할 필요가있을 때 사용합니다. 예를 들어 필자가 파일의 위쪽에 정의 된 함수와 맨 아래에 정의 된 함수라는 두 가지 상호 작용하는 함수에서 작업 할 경우 마커를 설정하여 두 위치간에 신속하게 이동할 수 있습니다.

클래스를 선언했거나 익숙하지 않은 선언으로 작업하는 경우 빠른 참조를 위해 뒤로 건너 뛸 수 있도록 처음에 설명 된 부분을 표시하는 것이 도움이됩니다.

마커는 일반적으로 유용하지만 C++로 개발 중이기 때문에 더 이상 (또는 덜) 유용하다고 생각하지 않습니다.

이들은 몇 가지 아이디어 일뿐입니다. 다른 많은 좋은 아이디어가있을 것입니다.

+0

어떻게 뛰어 내리시겠습니까? – vehomzzz

+2

'ma'를 사용하여 마커를 설정하면 'a'를 사용하여 뒤로 이동할 수 있습니다. – Stephan202

2

가장 일반적인 용도는 큰 블록을 복사하여 붙여 넣기 또는 삭제하는 것입니다. 블록의 첫 번째 줄로 이동하십시오. mx 블록의 마지막 줄로 이동하여 전체 블록을 복사하려면 (클립 보드) y'x을 입력하고, 블록을 삭제하려면 블록 d'x을 입력하십시오. 두 경우 모두 p 또는 P을 사용하여 다른 곳에 붙여 넣을 수 있습니다.

+0

멋진 바로 가기. 감사! –

1

마커는 선의 시작 부분이나 선의 정확한 위치로 돌아 가기위한 좋은 방법입니다.

일반적으로 일부 코드를 추출하거나 복사 할 때이를 사용합니다. 다음 고려 :

int tmp = 0; 
while (tmp < 10) 
{ 
    doIt(tmp); /* cursor before d */ 
    /* ... */ 
    finishIt(tmp); 
    tmp++ 
} 

내가 finishIt(tmp)doIt(tmp)에서 추출 할 경우, 그때 d'a a로 표시 삭제 한 후, 커서 (예를 들어 ma)에 마커를 설정 finishIt로 이동 한 것입니다.

+1

나는 시각적 인 선택을 사용하고 d를 누르거나 명령이 무엇인지 쉽게 알 수 있습니다. 나는이 기술을 가장 자주 사용하여 텍스트를 검색하고 바꿉니다. –

관련 문제