수색…


매크로 기록하기

매크로를 만드는 한 가지 방법은 그것을 기록 하는 것입니다.

매크로 기록을 시작하고 레지스터에 저장합니다 (이 예에서는 a 사용하지만 일반적으로 텍스트를 뺄 수있는 모든 레지스터가 될 수 있습니다).

qa

그런 다음 매크로에 기록 할 명령을 실행하십시오 (여기에서는 <li> 태그로 줄 내용을 <li> ).

I<li><ESC>A</li>

매크로에 기록하려는 명령이 끝나면 녹음을 중지하십시오.

q

이제, a 저장된 명령의 기록 된 순서를 실행하려면 다음을 사용하십시오.

@a

vim은 기록 된 순서를 반복 할 것입니다.

다음에 마지막으로 사용한 매크로를 반복하고 싶으면 @ 두 번 입력하면됩니다.

@@

추가 보너스로 명령 앞에 번호를 입력하면 명령을 여러 번 반복한다는 것을 기억하는 것이 좋습니다. 그래서, 당신은 레지스터에 저장된 매크로 반복 20 시간이를 : a

20@a

vim 매크로 편집하기

때로는 오랜 시간이 걸리는 매크로로 실수를하게되지만, 전체를 다시 기록하는 것보다는 오히려 편집하는 것이 좋습니다. 다음 프로세스를 사용하여이 작업을 수행 할 수 있습니다.

  1. 매크로를 "<register>p 와 함께 빈 줄에 놓으십시오.

    매크로가 레지스터 a 저장된 경우 명령은 "ap .

  2. 필요에 따라 매크로를 편집하십시오.

  3. 커서를 줄의 시작 부분으로 이동하고 "<register>y$ 사용하여 매크로를 올바른 레지스터로 끕니다.

    원래의 레지스터를 다시 사용하거나 다른 레지스터를 사용할 수 있습니다. 레지스터 b 를 사용하려면 명령은 "by$ . "<register>d$ 또는 "<register>d$ (사용되지 않는 라인을 삭제합니다)

재귀 매크로

Vim 매크로는 재귀적일 수도있다. 이 옵션은 파일의 끝까지 모든 행 (또는 다른 텍스트 객체)에 대해 작업해야하는 경우 유용합니다.

재귀 매크로를 기록하려면 빈 레지스터로 시작하십시오. (레지스터는 q<register>q 사용하여 비울 수 있습니다.)

시작하고 끝낼 각 라인에서 일관된 시작점을 선택하십시오.

녹음을 마치기 전에 매크로 자체를 마지막 명령으로 호출하십시오. 매크로가 아직 존재하지 않으므로 레지스터가 비어 있어야하므로 아무것도 수행하지 않습니다.

예를 들어, 주어진 텍스트 :

line 1
line 2
line 3
foo bar
more random text
.
.
.
line ???

일반 모드에서 커서를 첫 번째 행에두고 빈 레지스터 a 하면이 매크로를 기록 할 수 있습니다.

qaI"<Esc>A"<Esc>j@aq

그런 다음 @a 를 한 번 호출하면 파일의 모든 행이 큰 따옴표 안에 들어갑니다.

매크로 란 무엇입니까?

매크로는 Vim에 의해 지연없이 "재생"될 일련의 키 스트로크입니다. 매크로는 레지스터 나 변수에 저장하거나 키에 바인딩하거나 명령 줄에서 실행할 수 있습니다.

다음은 줄의 세 번째 word 를 대문자로 사용하는 간단한 매크로입니다.

0wwgUiw

이 매크로는 레지스터 q 기록 될 수 있습니다.

qq         start recording into register q
0wwgUiw    
q          stop recording

또는 레지스터 q 직접 저장됩니다.

:let @q = '0wwgUiw'

다음과 함께 재생할 수 있습니다.

@q

그러나 명령 줄에 직접 입력 할 수도 있습니다.

:normal 0wwgUiw

:normal 명령을 사용하여 즉시 재생할 수 있습니다.

또는 변수에 넣기 :

:let myvar = '0wwgUiw'

다음과 함께 재생할 수 있습니다.

@=myvar

또는 매핑으로 저장 :

nnoremap <key> 0wwgUiw

<key> 를 눌러 재생할 수 있습니다.

나중에 재사용 할 수 있도록 매크로를 저장하려면 삽입 모드에서 입력 할 수 있습니다.

<C-r>q

이것은 레지스터 q 매크로를 삽입합니다 (이 예제에서는 : 0wwgUiw ). 이 출력을 사용하여 예를 들어 vimrc 매크로를 정의 할 수 있습니다 :

let @q='0wwgUiw'

이렇게하면 레지스터 q 는 vim을 시작할 때마다이 매크로로 초기화됩니다.

액션 기록 및 재생 (매크로)

q 명령을 사용하면 vim에서 많은 지루한 작업을 단순화 할 수 있습니다.

예제 1. 배열 시퀀스 생성 (1 - 20).

STEP 1. i 삽입 모드를 입력하기 위해 입력 1

1

단계 2. 다음 작업을 기록하십시오 : "마지막 숫자를 다음 줄에 추가하고 숫자를 증가시킵니다"

  1. esc 를 입력하여 입력 모드를 종료하십시오.
  2. 레코드 모드로 들어가기 위해 qa 를 입력하고, 버퍼 a 사용 a
  3. yyp 를 입력하여 현재 행을 복사하고 다음 행으로 붙여 넣으십시오.
  4. 숫자를 증가 시키려면 ctrl + a 를 입력하십시오.
  5. q 다시 입력하여 기록을 마칩니다.
1
2

3 단계 . 액션을 18 번 재생 합니다.

18@a 를 입력하여 작업 3과 작업 4를 2 단계에서 재생하십시오.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20


Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow