이번에는 vim/vi에서 Macro사용 하는 방법을 알아보겠습니다.(vim으로 설명드리겠습니다.)


쉽게 말해 매크로란 같은 동작을 반복하게 해주는 거라고 생각하시면 편합니다.



간단하게 매크로를 실험해볼 텍스트파일을 만들었습니다.


이제 매크로를 이용해 가운데 공백 뒤의 글자들을 다 없앨려고 합니다.


만약 저렇게 해야할 라인이 엄청 많은데 일일이 하기에는 시간이 많이 소요됩니다.


그래서 매크로를 사용해 봅시다!





먼저 매크로 실행하는 방법은 명렁모드에서 q[Name]이 됩니다.


예시로 qt, qg qq 이렇게 입력하시면 아래와 같이 "기록중"이라는 글을 볼 수 있습니다.


이번에는 qt로 시작했다고 가정합니다.








이제 매크로가 동작중이니 매크로가 실행시키면 어떻게 동작할 것인지를 정해줍니다.


저희는 공백 오른쪽에 있는 글자를 없애고 싶으니 없애는 동작을 입력 해보겠습니다. 


먼저 Shift + ->로 옮겨줍니다.




여담으로 vim에서는 작업되돌리기가 있는데, 좀 다릅니다. 


습관처럼 ctrl+z를 누르면 정지되고 리커버리가 생겨서 이게 좀 귀찮게 합니다. 이러지 마시고


명령모드에서 :u하면 작업되돌리기가 되니 잘 쓰시면 되겠습니다.   







그다음 "15x"를 입력하면 커서 위치에서 15글자를 없애줍니다.





지운뒤 다음 라인으로 이동해줍니다.


이동을 한다음 매크로가 끝났다는 "q'를 다시 입력합니다.


그럼 't'라는 매크로가 만들어 진겁니다.







이제 등록된 매크로를 실행시키는 방법은 @[name]입니다.


따라서 여기엔 @t하면 아까전에 일련의 행동들이 자동으로 실행되게 됩니다.







여기서 @[name] 앞에 [숫자]@[name]을 하면 숫자에 들어간 만큼 매크로를 실행하게 됩니다.


여기서는 15@t를 입력하면 여러라인이 없어진 것을 알 수 있습니다.






간단한 예시, 예제로 vim/vi 매크로를 어떻게 하는지 알아 보았습니다. 


소스수정이나 추가할 때 매크로 기능을 잘 활용하면 작업의 시간을 많이 줄일 수 있습니다.



1. 매크로 시작 = q[name] 

2. .... (매크로 입력)

3. 매크로 종료 = q

4. 매크로 실행 = @[name]

5. 매크로 여러번 실행 = [number]@[name]


* :u = 작업 되돌리기 




+ Recent posts