텍스트에 특정 문자열을 앞뒤로 덧붙이는 작업을 하는 경우가 종종 있는데, 매크로를 지원하는 에디터가 마땅한게 없어서 범용적으로 쓸 수 있는 Keyboard Maestro를 알아보았다. 진입장벽이 다소 높은 프로그램이다.
아래와 같은 문자열을
샘플문자열1번째 줄
[원본 문자열]
샘플문자열2번째 줄
샘플문자열3번째 줄
샘플문자열4번째 줄
샘플문자열5번째 줄
샘플문자열6번째 줄
샘플문자열7번째 줄
아래와 같이 바꾸는 방법이다.
prefix-샘플문자열1번째 줄-suffix
[변환된 문자열]
prefix-샘플문자열2번째 줄-suffix
prefix-샘플문자열3번째 줄-suffix
prefix-샘플문자열4번째 줄-suffix
prefix-샘플문자열5번째 줄-suffix
prefix-샘플문자열6번째 줄-suffix
prefix-샘플문자열7번째 줄-suffix
먼저 Keyboard Maestro가 정상적으로 설치되어있고 시스템환경설정 → 보안 및 개인정보보호 → 손쉬운 사용에서도 설정이 끝났다고 가정한다.
첫번째는, 한줄에서 맨 처음으로 커서를 옮기고 prefix를 넣고 다시 맨 끝으로 커서를 옮긴 후 suffix를 넣고 아래줄로 한칸 내리는 매크로를 지정한다.
- 맨 왼쪽 Group에 적당한 그룹 (예: 텍스트에디터용) 을 생성한다.
- 다음 Macros 창에서 매크로를 하나 생성하고 이름을 적당하게 지정한다. (예: prefix suffix 넣기)
- Triggerd by any of the following에서 This hot key를 선택하고 적당한 핫키를 지정한다. (opt + cmd + 1)
- New Action을 선택하면 나오는 Action 목록에서 Interface Control → Type a Keystroke 를 선택한다.
- 추가된 액션에서 Simulate keystroke 옆에 있는 입력창에서 x를 눌러 기본으로 들어가 있는 return을 삭제한 후 다시 한번 입력창을 클릭하여 키입력 대기상태로 만든다.
- type 라고 써진 대기 상태에서, 한줄의 맨 앞으로 커서를 옮겨야 하니 CMD와 왼쪽 화살표를 누른다. 입력창에 ⌘Left Arrow 라고 입력된다.
- 화면 하단에서 다시 + 를 누르고 New Action을 누른다.
- Action category에서 Text를 누르고 Insert Text by Typing 을 누른다.
- 추가된 액션의 입력창에 넣으려는 문자열을 넣는다. 지금 경우는 prefix. 여기까지 한 줄에서 맨 앞으로 커서를 옮기고 prefix라는 문자열을 추가한 상태가 되었다.
- New Action → Interface Control → Type a Keystroke에서 이번엔 ⌘Right Arrow를 입력하여 줄의 맨 끝으로 커서를 옮긴다.
- Action category→Text→Insert Text by Typing 을 누른후 입력할 문자열에 suffix 를 써 넣는다.
- New Action → Interface Control → Type a Keystroke에서 Down Arrow로 커서를 한줄 내린다.
여기까지 지정한 매크로로 opt + cmd + 1 키를 누르면 한 줄의 맨 앞에 prefix 문자열을 넣고 맨 뒤에는 suffix 문자열을 넣고 커서를 한줄 아래칸으로 옮기는 것까지 가능하다.
추가적으로 작업할 라인 수를 입력하면 그 횟수만큼을 자동으로 진행되도록 할 수 있다.
아까 만들어둔 텍스트에디터용 그룹에 “반복횟수 입력 prefix-suffix” 정도로 새로운 매크로를 생성하자.
- 핫키는 아까 핫키와 겹치지 않게 opt + cmd + 2 정도로 지정한다.
- New Action을 누르고 Variables → Prompt for user input을 선택한다.
- Title에 적당하게 제목을 넣는다. “횟수 입력”
- Prompt에 설명을 넣는다. “매크로를 반복할 횟수를 입력해 주세요.”
- Variables and Default Values에서 +버튼을 누르고 변수명과 기본횟수를 지정한다. 한글 변수명도 잘 동작하니 “반복횟수”라고 쓰고 기본 횟수값은 적당히 넣는다. (예:5)
- Buttons에는 버튼 이름을 적는데 OK와 Cancel을 그대로 두던가 확인,취소 정도로 적는다.
- 이 상태에서 Keyboard Maestro 상단에 있는 [▶]Run 버튼을 누르면 횟수를 묻는 창이 떠야 정상.
- 다시 New Action 을 누르고 Action Category에서 Control Flow를 선택하고 Repeat를 선택한다.
- Repeat Actions 1 time 라는 액션이 추가되었고 바로 아랫줄에 1 이라는 숫자가 써 있는데 이 칸에 1을 지우고 조금전 지정한 반복횟수 변수명인 “반복횟수”라고 입력한다. 제대로 입력하면 바로 아랫줄에 기본 반복횟수 변수값으로 지정한 5가 “→5” 처럼 써진다.
- 바로 아랫칸에 회색 점선안에 No Action 이라고 써진 영역을 눌러 파란 점선으로 바꾼다.
- Action 목록에서 Execute→Execute a Macro를 누르면 방금 전 No Action 칸에 Execute a macro라는 액션이 생기게 된다.
- Execute macro 옆에 None이라는 항목을 누르면 내가 생성한 매크로 목록들이 보이게 되고 아까 생성한 매크로를 선택할 수 있다.
이제 텍스트 에디터에서 opt + cmd + 1을 누르면 커서가 있는 줄의 맨 앞과 맨 뒤에 각각 prefix와 suffix 문자열이 들어가고 커서가 한줄 내려간다. 누를 때 마다 반복.
만약 입력해야 하는 줄 수가 50줄이라면 opt + cmd + 1 을 50회 눌러도 되고 opt + cmd + 2를 눌러서 반복횟수를 50 이라고 지정하면 처음 매크로를 50회 불러와서 자동으로 실행하게 된다.