매크로란 무엇인가?
앞에서 배운 레지스터 중에서 우리가 임의로 사용할 수 있는 임시 저장소로 알파벳 레지스터에 대해서 배운 바 있다.
이 알파벳 레지스터에는 보통 데이터가 들어가지만 일련의 키 입력을 저장할 수도 있다.
이 때, 일련의 키 입력을 레지스터에 저장하고 이것을 다시 실행할 수 있도록 만드는 것을 vim의 매크로라고 한다.
매크로 기록 및 사용
매크로를 기록하고 사용하는 과정은 다음과 같다.
1) 매크로 기록 시작
q와 키 입력을 저장할 알파벳 레지스터에 해당하는 알파벳을 누르면 이후에 이루어지는 키 입력이 해당 알파벳 레지스터에 기록되기 시작한다.
2) 키 입력
매크로로 지정할 키를 실제로 사용하면서 입력한다.
3) 매크로 기록 완료
원하는 키 입력을 마친 후 q를 누르면 매크로 기록이 완료된다.
4) 매크로 사용
명령 모드에서 @와 알파벳 레지스터에 해당하는 알파벳을 같이 누르면 레지스터에 기록된 매크로를 실행한다.
매크로 기록 및 사용 사례
그럼 실제 사용해보면서 매크로를 익혀보자.
반복적으로 사용되지만 키 입력이 귀찮은 경우에 해당하는 일련의 키 입력을 매크로로 지정하는 것이 바람직할 것이다.
소스코드를 작업하다 보면 들여쓰기를 해야하는 경우가 많다. 그 때마다 일일이 행의 처음으로 돌아가서 편집모드로 들어간 후 [Tab] 키를 누른 후 다시 명령 모드로 돌아오는 과정이 조금 귀찮았던 것 같다. 이것을 매크로로 만들어 보자.
1) 매크로 기록 시작
알파벳 레지스터 중 a에 매크로를 기록한다.
일단은 명령 모드에서 qa 를 눌러 매크로 기록을 시작한다.
다음의 사진과 같이 하단에 '기록 중 @a' 라는 표시가 나타난다.
2) 키 입력
다음과 같이 기록할 키 입력을 수행한다.
우선 커서가 행의 공백이 아닌 첫 글자에 위치하도록 캐럿(^) 키를 누른다.
편집 모드로 진입하기 위하여 i키를 누른다.
이제 [Tab]키를 눌러 탭을 삽입하고 [Esc] 키를 눌러 명령 모드로 돌아온다.
3) 매크로 기록 완료
q를 눌러 매크로 기록을 마친다.
4) 매크로 사용
명령 모드에서 @a 를 눌러 a 레지스터에 기록된 매크로를 사용해본다.
이 때, 행의 앞에 탭을 3개를 한꺼번에 삽입하고 싶으면 명령 모드에서 3@a 를 누르면 된다. 그러면 @a 를 3번 반복하여 실행하므로 탭이 3개가 삽입되는 효과가 나타난다.
Anki 파일
아래는 본 포스팅의 내용을 갈무리하기 위한 Anki 파일입니다. 참고하시기 바랍니다.
'Anki로 공부하기 > vi 또는 vim 익히기' 카테고리의 다른 글
064 폴딩 기능 (0) | 2018.08.02 |
---|---|
063 vim에서 셸 명령 사용하기 (0) | 2018.08.01 |
061 단축키 만들기-키 매핑(mapping) (0) | 2018.07.30 |
060 원하는 위치를 마킹해서 이동하기2 (0) | 2018.07.27 |
059 원하는 위치를 마킹해서 이동하기1 (0) | 2018.07.25 |