#TIL #vim 범위에 매크로 실행을 하고 싶다면

SomeModule.some_func(1, 2, 3)
SomeModule.some_func(1, 3, 4, 5)
SomeModule.some_func(1, 4, 5, 6, 7)
SomeModule.some_func(1, 5, 6, 7, 8, 9)
SomeModule.some_func(1, 6, 7, 8, 10, 11)

두 번째 인자를 싹 없애고 싶다. normal 모드에서 qq WdW 키를 입력한다.

SomeModule.some_func(1, 3)
SomeModule.some_func(1, 3, 4, 5)
SomeModule.some_func(1, 4, 5, 6, 7)
SomeModule.some_func(1, 5, 6, 7, 8, 9)
SomeModule.some_func(1, 6, 7, 8, 10, 11)

첫 번째 라인에는 없어졌다. 나머지 라인에도 적용하고 싶다. 라인을 바꿔가며 @q 키를 입력해서 위에서 입력한 q 매크로를 실행하면 된다.

:2,5normal @q

normal 명령어를 범위에 대고 실행해보자.

SomeModule.some_func(1, 3)
SomeModule.some_func(1, 4, 5)
SomeModule.some_func(1, 5, 6, 7)
SomeModule.some_func(1, 6, 7, 8, 9)
SomeModule.some_func(1, 7, 8, 10, 11)

짠! normal 명령어를 사용하면 범위에 대고 normal 명령을 적용할 수 있다. 매크로 실행뿐만 아니라 normal 명령어면 모두 가능하다. 위 예제에서 매크로를 만들지 않고 :%normal WdW 을 입력해도 똑같은 결과가 나온다. 복잡한 건 매크로를 만들어서 실행하고 간단한 건 바로 normal 명령어를 사용하면 된다.

참고

Feedback plz <3 @ohyecloudy, ohyecloudy@gmail.com

A Random Post