본문 바로가기
나의 정보/정보

울트라에디트 매크로(UltraEdit Macro) 예제

by 상오기™ 2009. 1. 8.
울트라 에디트의 매크로 기능은 강력하지만(노가다 작업을 대신하여 시간을 절약해줌) 실제 사용하는 방법을 설명한 글은 거의 없어 단순한 키를 누르는 노다가 작업에만 매크로를 사용하게 됩니다.

단순하게 반복되는 작업은 빠른 녹화 기능으로 사용하면 되지만 복잡한 작업의 경우 매크로 명령어를 사용하여 직접 작성해야만 한다.

하지만 매크로 명령어의 도움말을 봐도 설명이 부실해 실 사용시 적용하기는 너무 어렵습니다 ㅠ.ㅠ

실 사용시 이 기능은 어떻게 매크로로 구현하면 좋을까하며 수많은 반복을 통해 조금씩 알아가고 있는 매크로 예제를 남깁니다.

현재 완벽하게 사용하는 예제는 아니며 사용상 오류가 있을 수 있습니다.

참고 자료일뿐~!!!

참고 링크 : http://www.ultraedit.com/support/tutorials_power_tips/ultraedit.html

키보드 조합

편집기에서 사용 가능한 기능 입니다.

매크로 KEY 명령어와 사용이 가능한 키는 CTRL만 입니다.

Ctrl + LEFT ARROW : 왼쪽으로 가며 한 단어씩 이동
Ctrl + RIGHT ARROW : 오른쪽으로 가며 한 단어씩 이동
Alt + LEFT ARROW : 왼쪽으로 한 문단 단위로 이동
Alt + RIGHT ARROW : 오른쪽으로 한 문단 단위로 이동
Ctrl + Home : 파일의 제일 처음 위치로 이동
Ctrl + End : 파일의 제일 끝 위치로 이동
Shift + Home : 커서 위치부터 왼쪽으로 블록 선택
Shift + End : 커서 위치부터  오른쪽으로 블록 선택

이외에도 조합에 따라 달라 집니다.

매크로 명령어

1. Loop

Loop가 끝나는 조건이 있어야 무한루트에 빠지지 않습니다.

아래의 예제에선 파일의 끝에 도달하면(ifEof) 매크로를 정지 합니다. 

Loop 3 -> 3번 반복
 
Loop
IfEof
ExitMacro
Else
Action(s)
EndLoop



예제


1. HTML 수정

PDA의 SuperMemo란 프로그램에 사용하는 단어장을 작성시 태그를 수정하여 웹 페이지로 만들때 사용

InsertMode
ColumnModeOff
HexOff
UnixReOff
Find RegExp "A: "
Replace All ""
Find RegExp "Q: "
Replace All "<br><br><font size="6" color="red"><b>"
Find RegExp " <a href="
Replace All "</b></font><a href="
Find RegExp "<a href=*</a>"
Replace All "<br>"
Find RegExp "file://\sd\"
Replace All "http://sites.google.com/site/sangogi/Home/"

2. 특정한 단어들이 있는 라인을 삭제

"나:" 또는 "en2ko.dict" 라는 단어가 들어간 라인을 삭제하는 매크로

구글쳇시 영한사전 봇이 알려준 단어의 뜻을 저장하여 편집시 사용

InsertMode
ColumnModeOff
HexOff
UnixReOn
Top
Loop
Find RegExp "( 나: |en2ko.dict)"
IfFound
DeleteLine
Else
ExitLoop
EndIf
EndLoop
Top
UnixReOff

3. FileSaveAs

Clipboard 9
Loop
IfNameIs ""
ExitLoop
EndIf
CopyFilePath
SaveAs "^c"
CloseFile
EndLoop
ClearClipboard
Clipboard 0

4. Copy token under cursor, or currently selected text.

InsertMode
ColumnModeOff
HexOff
UnixReOff
IfSel
Copy
StartSelect
Else
SelectWord
Copy
StartSelect
EndIf

5. Cut token under cursor, or currently selected text.

InsertMode
ColumnModeOff
HexOff
UnixReOff
IfSel
StartSelect
Cut
Else
SelectWord
StartSelect
Cut
EndIf

6. Paste, replacing token under cursor, or currently selected text.

InsertMode
ColumnModeOff
HexOff
UnixReOff
IfSel
StartSelect
Paste
EndSelect
Else
SelectWord
StartSelect
Paste
EndSelect
EndIf

7. Duplicate currently selected text or current line.

ColumnModeOff
HexOff
Clipboard 9
ClearClipboard
IfSel
Cut
Paste
Paste
Find Up Select "^c"
Else
SelectLine
Cut
Paste
Key UP ARROW
Paste
PlayMacro 1 ""
EndIf
Clipboard 0

8.

InsertMode
ColumnModeOff
HexOff
UnixReOn
GotoLine 1
Find RegExp "\swordfile:"
IfFound
Find RegExp "\S"
StartSelect
Key END
EndSelect
EndIf

9. 역순으로 저장

단어장의 단어들이 순서가 거꾸로 입력되어 있어 차례대로 만들어주기 위해 사용

단어들을 구분하기 위해 사용한 정규식 : Find RegExp " ^p ^p"
(Alt+화살표 조합이 매크로에 적용이 된다면 쉬운데 안되기 때문에 노가다로 찾음)

단어를 구분해서 잘라낸후 다음 문서의 앞쪽에 복사함으로써 역순으로 저장이 된다.

InsertMode
ColumnModeOff
HexOff
UnixReOff
Top
Find RegExp " ^p ^p"
IfFound
SelectToTop
Copy
Delete
NextDocument
InsertLine
Paste
Top
Key HOME
PreviousDocument

10. SuperMemo의 HTML 단어장에서 필요없는 부분을 제거

매크로의 버그인지 수정후 업데이트가 정확히 되지 않는다.
알지 못하는 제한도 많은듯... ㅡ,.ㅡ

InsertMode
ColumnModeOff
HexOff
UnixReOn
Top
Find RegExp "<br>"
Replace All "^p<br>"
Find RegExp "(<DIV>|</DIV>)"
Replace All ""
Loop 0
Find RegExp "<br>ㆍ"
IfNotFound
ExitLoop
Else
DeleteLine
EndIf
EndLoop
Top
Loop 0
Find RegExp "<br>♣"
IfNotFound
ExitLoop
Else
DeleteLine
EndIf
EndLoop
Top
Loop 0
Find RegExp "<br>⑴"
IfNotFound
ExitLoop
Else
DeleteLine
EndIf
EndLoop
Top
Loop 0
Find RegExp "<br>⑵"
IfNotFound
ExitLoop
Else
DeleteLine
EndIf
EndLoop
Top
Loop 0
Find RegExp "<br>⑶"
IfNotFound
ExitLoop
Else
DeleteLine
EndIf
EndLoop
Top
Loop 0
Find RegExp "<br>⑷"
IfNotFound
ExitLoop
Else
DeleteLine
EndIf
EndLoop
Top
Loop 0
Find RegExp "<br>⑸"
IfNotFound
ExitLoop
Else
DeleteLine
EndIf
EndLoop
Top
Loop 0
Find RegExp "<br>⑹"
IfNotFound
ExitLoop
Else
DeleteLine
EndIf
EndLoop
Top
Find RegExp "^p<br>"
Replace All "<br>"
Loop 0
Find RegExp "<br><br>"
IfNotFound
ExitLoop
Else
Replace All "<br>"
EndIf
EndLoop
Top
UnixReOff