매크로

MySprtlty·2022년 7월 5일
0

vim

목록 보기
21/21
post-thumbnail

🏷️매크로

📌개념

  • 녹화는 사용자의 작업을 기억해 두었다가 다시 작동시키는 일종의 매크로다.

  • 정확하게 표현하자면 사용자가 입력했던 key들을 레지스터에 저장하는 것이다.

  • 녹화와 재생 명령어는 다음과 같다.

    명령어설명
    q{매크로 이름}녹화 시작, {매크로 이름}은 [a-zA-Z]중 하나를 선택해야 한다.
    @{매크로 이름}매크로를 실행, {매크로 이름}은 [a-z]중 하나를 선택해야 한다.
    @@이전에 실행된 매크로를 재실행한다.
    q녹화 종료
  • 매크로 이름을 대문자로 하면, 소문자에 match되는 레지스터를 수정한다.

    • 🔍ex) qA로 녹화를 시작하면 a레지스터에 녹화된 내용 뒤에 새로 녹화하는 내용이 추가된다.
    • 이것이 매크로 페이지에서 얘기했던, 소문자와 대문자의 용도에 대한 차이다.

📌매크로 실행 범위 지정

  • 명령어는 다음과 같다.

    명령어설명
    :%normal! @a문서 전체 범위의 각 행에서 일반모드의 명령어(@a)를 실행한다.
    • %는 문서 전체를 의미하며, 1,$로 해도 동일하다.
    • normal은 뒤에 나오는 문자열을 normal mode의 명령어로 인식하라는 뜻이다.
    • norm으로 축약 가능하다.
    • !는 예외 상황을 무시하고 작업을 끝까지 진행하는 명령어다.

📌매크로 내용 수정하기

  • a매크로를 수정하는 상황이라고 가정한다.
    1. 임시로 새로운 행을 만든다.
    2. "ap 명령으로 현재 a레지스터의 내용을 붙여 넣는다.
    3. 내용을 수정한다.
    4. 수정한 내용이 입력되어 있는 행의 맨 앞에서 "ay$라고 명령해서 이 내용을 a레지스터 에 저장한다.
    5. dd로 해당 행은 지워버린다.
  • 다시 한번 강조하지만, 단순히 맨 뒤 내용을 추가하는 것(append)이라면, 대문자로 녹화하면 된다.

이것으로 vim 시리즈는 마무리 됐다.

0개의 댓글