⑴ UltraEdit 中的宏編輯
編輯宏命令 (宏菜單)
編輯宏命令允許你創建一個新宏,或編輯以前用這個命令生成的宏,或者編輯用錄制命令錄制的宏。
在大多數場合下,它可以用宏的錄制命令很方便地錄制一個新宏,如果你需要編輯,則可以編輯它,你只要稍作學習就可以掌握。
命令
宏是可以在以後任何時候執行並自動修改文件的一連串命令的組合。 對話框左邊顯示當前進行編輯的宏,和包含可編輯宏命令的編輯窗口。
宏中的命令必須是預定義命令中的其中一個;這些預定義命令顯示在對話框右邊。 如果用滑鼠在一個命令上雙擊,或單擊命令左邊向左的箭頭,它將自動添加到宏中。
參數
該數字參數必須完全明了,象「Goto Line # #」或「Goto Page #」。 但是象查找和替換、排序等命令,還要用非數字的其它參數,這些其它的參數在每個選定的命令列表的下面列出。
創建一個新宏
要從該對話框創建新宏,點擊新建宏按鈕。將顯示宏定義對話框,允許您定義需要的宏名和熱鍵。
當新建一個宏時,下列這些宏命令將自動添加到宏中:
- Insert Mode or OverStrike Mode
- ColumnModeOn or ColumnModeOff
- HexOn or HexOff
- UnixReOff or UnixReOn or PerlReOn
這四個命令根據當前編輯器狀態添加的。其目的是在每次宏執行時建立一個已知的編輯狀態。如果宏是在某種模式下錄制,並在其它環境中執行,可能會出現不可預知的問題。在宏的開頭建立宏運行模式可以確保達到你預期的結果。這些命令可能需要修改。
創建後的宏可以進行編輯。請注意:"^c" 和 "^s" 可以在很多宏命令中使用,替換剪貼板的內容 (^c) 和當前選中的內容 (^s)。這使得用戶記錄引用指定字元串的宏並將其替換為剪貼板的內容或當前選定的內容,使得宏在運行時動態「指定」字元串。
修改宏
要修改宏,可以直接在宏編輯框中輸入命令,或從命令列表中選擇。命令不區分大小寫,但拼寫必須要與命令列表中顯示的完全一致。
下表顯示你可以添加的命令行和各自的參數:
命令
參數*
說明
""
在引號 ("") 之間插入文本。結束引號必須是行中的最後一個非空格字元。要插入的字元可以是多行的文字。要插入一個引號 ("),將它放在文本開始插入的所需位置,並且確保最後一個字元也是引號。要只插入單個引號字元 ("),則該行應該是這樣:
"""
要插入一個新行,在起始引號和結束引號之間添加一行。要在行首插入帶 1 和 2 開頭的兩行,應該是這樣:
"1
2"
AnsiToOem
將文件從 ANSI 轉換到 OEM
ASCIIToUnicode
將文件從 ASCII 轉換到 Unicode
Bottom
跳到文件末端
ClearClipboard
清除 UltraEdit 內部活動剪貼板內容
Clipboard
剪貼板號碼 (0-9)
選擇指定的剪貼板;0 = 指定 Windows 剪貼板,1-9 指定用戶剪貼板
CloseFile
空白 (無參數)
Save 在文件關閉前強制保存
NoSave 如果文件應該先保存,則不提示關閉文件
關閉活動文件
ColumnCenterJustify
居中對齊選定的列
ColumnCut
要剪切的列編號數值
列模式中的剪切,選中的列或指定列號的列從當前游標位置到文件末尾。要剪切選中的列必須使用值「0」。
ColumnDelete
要刪除的列編號數值
列模式中的刪除,選中的列或指定列號的列從當前游標位置到文件末尾。要刪除選中的列必須使用值「0」。
ColumnInsert
字元串位於引號 ("") 中
插入引號內的字元到選定的列
ColumnInsertNum
開始數字
增量
LeadingZero (可選)
HEX (可選)
在選中列中插入數字。 例如,要在每個選中行或從當前行到最後一行的當前列插入以 20 開始的數,增量為 -1 (= 遞減 1),帶有十六進制符號的首位 0,則應使用以下命令:
ColumnInsertNum 20 -1 LeadingZero Hex
ColumnLeftJustify
向左對齊選定的列
ColumnModeOff
關閉列模式
ColumnModeOn
打開列模式
ColumnRightJustify
向右對齊選定的列
Copy
復制選定的文本到剪貼板中
CopyAppend
復制選定的文本並附加到剪貼板
CopyFilePath
復制活動文件路徑/名字到剪貼板
Cut
從文件中剪切選定的文本,並放置到剪貼板
CutAppend
從文件中剪切選定的文本,並附加到剪貼板
Delete
刪除當前字元或選定的文本
DeleteLine
刪除當前行
DeleteToEndofLine
刪除從當前游標位置到行尾的內容
DeleteToStartofLine
刪除從行首到當前游標位置的內容
DosToMac
轉換文件 (行結束符) 到 MAC 格式
DosToUnix
轉換文件 (行結束符) 到 UNIX 格式
DupeLine
在當標下面插入活動行的副本
Else
IF 命令的 Else 函數
IfSel
&
Else
如果 IfSel 命令失敗則執行這些命令
EndIf
EndIf
結束受 If... 聲明控制的指示塊
EndLoop
結束循環 - 轉回循環起始 - 查閱 Loop 命令
EndSelect
停止選擇文本(詳細信息請參見開始選擇)
ExitLoop
退出循環,並轉到循環後 (EndLoop 命令之後) 的第一個命令 - 查閱 Loop 命令
ExitMacro
在不處理另外命令或返回一個錯誤的情況下退出宏執行
Find
"" (搜索引號中的字元)
Ascii 說明是十六進制模式中的 ASCII 搜索(可選,僅十六進制模式)MatchCase 說明搜索條件是區分大小寫的 (可選)
MatchWord 說明搜索的字元只完全匹配整個詞語 (可選)
PreserveCase 如果使用則替換字元串與查找字元串大小寫匹配,僅在後接 Replace 命令時可用(可選)
RegExp 說明這是一個正則表達式搜索 (可選)
Up 說明是用反向搜索 (可選)
Select 說明應該選定從當前選區/位置到搜索目標結束位置的文本
根據參數指定內容查找引號 "" 中的字元。
一些例子:
在任何情況下查找單個按字母排序的字元
Find RegExp "[A-Z]"
僅在大寫情況下查找單個按字母排序的字元
Find MatchCase RegExp "[A-Z]"
查找單個非 'a' 或 'A' 或 CRLF (UltraEdit 語法) 的字元:
Find RegExp "[~a^p]"
查找單個非 'a' 或 LF (Unix/Perl 語法) 的字元:
Find MatchCase RegExp "[^a\n]"
FindInFiles
"" (引號中是初始目錄字元)
"" (引號中是文件/類型字元)
"" (引號中是要搜索的字元)
MatchCase 說明搜索條件是區分大小寫的 (可選)
MatchWord 說明搜索的字元只完全匹配整個詞語 (可選)
OpenFiles 說明搜索應該限為當前打開進行編輯的文件 (可選)
OutputWin如果選定,則返回搜索輸出到輸出窗口;如果未選定,則返回到一個新的編輯窗口 (可選)
ProjFiles 如果選定,搜索限制為活動方案部分中的指定文件 (可選)
Recursive 如果選定,則繼續搜索指定搜索目錄下的子目錄 (可選)
RegExp 說明這是一個正則表達式搜索 (可選)
SolFiles 如果使用,則搜索限定在指定為活動解決方案一部分的文件(可選,僅在 UEStudio 中)
Unicode 如果選定,則輸入的字元將以多位元組文字輸入,並轉換到 Unicode (可選)
根據參數中的定義搜索指定文件,查找引號 "" 中的字元。格式必須如下:
FindInFiles BoldParameters "初始目錄" "文件/類型" "要搜索的字元"
例如:
FindInFiles OutputWin "c:\temp\test\" "*.html" "home"
當在所有打開文件、項目文件或解決方案文件中搜索時,Recursive 參數將被忽略。
當使用 OpenFiles、 ProjFiles 或SolFiles 時,初始目錄和文件/類型參數應該為空字元串 "" 。
FromEBCDIC
從 EBCDIC 格式轉換文本
GetString
在提示對話框中使用的引號 ("") 中的字元串
在當前位置提示用戶要在文件中插入的字元。這里的「提示」是在宏執行時顯示給用戶的提示或詢問。
GetString "你最喜歡在哪個國家居住?"
GetValue
在提示對話框中使用的引號 ("") 中的字元串
在當前位置提示用戶要在文件中插入的值。這里的「提示」是在宏執行時顯示給用戶的提示或詢問。
GetValue "您老貴庚呀?"
GotoBookMark
要跳轉到的書簽索引 跳轉到下一個/指定的書簽。 索引從 0 開始。如果用戶輸入大於實際書簽數的索引,則將自動引導到第一個書簽 (索引 0)。
GotoBookMarkSelect
要跳轉到的書簽索引
跳轉到下一個/指定的書簽並選擇從游標位置到書簽的文本。 索引從 0 開始。如果用戶輸入大於實際書簽數的索引,則將自動引導到第一個書簽 (索引 0)。
GotoLine
要跳轉到的行和列數的數值
跳轉到指定的行和列號
GotoLineSelect
要跳轉到的行和列數的數值
跳轉到指定的行號和列號並選擇從游標位置到行/列的文本。
GotoPage
要跳往的頁碼數值
跳到指定的頁碼
GotoPageSelect
要跳往的頁碼數值
跳到指定的頁碼,並選中從游標位置到頁碼間的文本
HexDelete
指定要刪除位元組大小的數字值
從文件中刪除指定的位元組數
HexInsert
指定要插入的位元組數的數值
插入指定的位元組數(空格)到文件中
HexOff
關閉十六進制模式——切換到文本模式
HexOn
打開十六進制模式
HideOrShowLines
隱藏選定的行,如果它是隱藏的,則顯示原先隱藏的游標所在位置的行
IfCharGt
"字元串" 或數字
這用來檢查游標位置的字元是否大於指定的字元或指定的數值。如果是數值則不是檢查字元的值,而是檢查字元的十進制值。
IfCharGt " "
如果當前字元大於等於空格,則執行這些命令
EndIf
IfCharGt 32
如果當前的字元十進制值大於等於 32 - 空格的十進制值,則執行這些命令
EndIf
IfCharIs
"字元串" 或數字
這用來檢查當前游標位置的字元是不是指定的字元,或匹配該字元的十進制數值。
IfCharIs "xyz"
如果當前字元是 x、y 或 z,則執行這些命令
EndIf
IfCharIs 34
如果當前的字元是十進制值 34 - 雙引號,則執行這些命令
EndIf
IfColNum
數字
這用來檢查當前游標位置是不是指定的列號。
IfColNum 10
如果當前游標位置是列 10,則執行這些命令。
&
EndIf
IfColNumGt
數字
這用來檢查當前游標位置是不是指定的列號。
IfColNumGt 10
如果當前游標位置是列 10,則執行這些命令。
&
EndIf
IfEof
這用來檢查當前游標位置是否處於文件的最末端。
IfEof
如果在文件最末端則執行這些命令
EndIf
IfExtIs
"字元串"
檢查活動文件的文件擴展名是否與指定字元串匹配。如果擴展名匹配,則條件滿足,將執行 IfextIs 聲明後面的宏命令。
IfExtIs "txt"
如果當前文件的擴展名是 txt,則執行這些命令。
&
EndIf
IfFound
這將檢查宏中最後一次 find 命令返回的結果,如果最後一次搜索完成,將執行下一個指示集,一直到出現「EndIf」。
Find "something"
IfFound
如果找到「something」,則執行這些命令
EndIf
注意 - 要在宏執行時避免出現「未找到」消息,請確保宏屬性中的「如果查找和替換 未找到則繼續」選擇框中已作相應的設置。
IfFTP
這用來檢查當前的文件是否為通過 FTP/SFTP 載入的文件,而不是本地/網路文件。
IfFTP
如果文件是 FTP 載入的文件,則執行這些命令
EndIf
IfNameIs
"字元串"
這用來檢查活動文件 (沒有路徑或擴展名) 是否匹配指定的字元。如果名字是匹配的,則條件滿足,宏將執行 IfNameIs 聲明後面的步驟。
IfNameIs "test"
如果當前文件名是 test (不考慮文件擴展名),則執行這些命令
EndIf
IfNotFound
這將檢查宏中最後一次 find 命令返回的結果,如果最後一次搜索未成功,將執行下一個指示集,一直到出現「EndIf」。
Find "something"
IfNotFound
如果未找到「something」,則執行這些命令
EndIf
注意 - 要在宏執行時避免出現「未找到」消息,請確保宏屬性中的「如果查找和替換 未找到則繼續」選擇框中已作相應的設置。
IfSel
這用來檢查在活動文件內部是否有已被選定的任何文本。
IfSel
如果有選定的內容,則執行這些命令
EndIf
InsertLine
在游標當前位置的下面插入空白行
InsertMode
更改文本編輯模式中的字元輸入為插入模式
InsertPageBreak
在文件中的當前游標位置插入一個換頁/分頁字元
InvertCase
反轉選定文本的大小寫
Key
BACKSPACE
DEL
DOWN ARROW
END
HOME
LEFT ARROW
PGDN
PGUP
RIGHT ARROW
UP ARROW
Ctrl+END
Ctrl+HOME
Ctrl+LEFT ARROW
Ctrl+RIGHT ARROW
在宏中插入一個鍵擊命令。通常用於在文件中導航以及退格或刪除。「Ctrl+」可以與普通編輯一起使用,用來修改命令。
如果這些命令只是作為文本輸入,不作為鍵命令,則在 "" 中輸入文本。
Loop
#
循環執行 # 次,這里的 # 是一個數值。0 表示無限循環。 例如:
Loop 10
執行命令 10 次
&
EndLoop
MatchBrace
查找匹配的成對符號,並選中它們之間的文本
NewFile
打開一個新的空白文件
NextDocument
切換到下一個文件標簽文件
NextWindow
切換到下一個窗口
OemToAnsi
將文件從 OEM 轉換到 ANSI
Open
引號 ("") 中是文件名
打開指定的文件。文件名必須在引號中。文件名中可以使用「^s」。UltraEdit 將其取代為活動窗口中當前選中的文本。同樣可以使用「^c」且 UltraEdit 會將其替換為剪貼板中的內容。
OverStrikeMode
更改文本編輯模式中的字元輸入為覆蓋模式
Paste
粘貼剪貼板的內容到文件中
PerlReOn
將正則表達式切換為符合 Perl 樣式的正則表達式
PlayMacro
指定宏執行次數的數值
用引號 ("") 指定宏名
執行其它宏。先指定執行宏的次數,然後是宏名。宏名必須在引號中且區分大小寫,並且宏應該已經存在。
PreviousBookmark
跳到上一個書簽
PreviousBookmarkSelect
跳到上一個書簽,並選中從游標位置到書簽之間的文本
PreviousDocument
切換到上一個文件標簽文檔
PreviousWindow
切換到上一個窗口
Replace
All 全部替換。
AllFiles 在所有打開的文件中替換 (必需 All)。
SelectText 在選定的文本中替換 (必需 All)。
用引號中 ("") 的字元替換 - 用與替換找到的字元的字元串。
Replace 命令是用指定的字元替換先前找到的字元。 這個命令必須跟隨在 Find 命令之後。
與查找字元一樣,替換字元串必須在引號中。關閉引號必須是行中的最後一個非空格字元。
替換字元可以交叉多行,如果任何行中的最後的非空格字元是一個引號,該字元就此結束。所有允許在替換命令使用的特殊字元,也可以在這里使用。
ReplInFiles
"" (引號中是初始目錄字元)
"" (引號中是文件/類型字元)
"" (引號中是搜索字元)
"" (引號中是替換字元)
Log 創建一個已更改文件的列表 (可選)
MatchCase 說明搜索是區分大小寫的 (可選)
MatchWord 說明搜索的字元只完全匹配整個詞語 (可選)
ProjFiles 如果使用則搜索限定在指定為活動項目一部分的文件中進行 (可選)
PreserveCase 如果選定,搜索只返回與指定字元大小寫完全匹配的字元 (可選)
Recursive 如果選定,則繼續搜索指定搜索目錄下的子目錄 (可選)
RegExp 說明是一個正則表達式搜索 (可選)
SolFiles 如果使用則搜索限定在指定為活動解決方案一部分的文件中進行 (可選,僅 UEStudio)
Unicode 如果選定,則輸入的字元將以多位元組文字輸入,並轉換到 Unicode (可選)
根據指定的參數搜索整個指定的目錄,查找引號 "" 中的字元,並替換為指定的內容。格式必須象下面一樣:
ReplInFiles BoldParameters "初始路徑" "文件/類型" "搜索字元串" "替換字元串"
「替換字元串」(引號中內容)必須在宏的下一行中指定,且不在 ReplInFiles 命令的一行中。
例如:
ReplInFiles "c:\temp\test\" "*.html" "home"
"away"
當在所有打開的文件、項目文件或解決方案文件中搜索時,循環參數被忽略。
當使用 OpenFiles、 ProjFiles 或SolFiles 時,初始目錄和文件/類型參數應該為空字元串 "" 。
ReturnToWrap
轉換硬回車符到自動換行
RunTool
引號 ("") 中的字元指定要運行的工具的區分大小寫的菜單名
運行一個工具。該工具必須是從高級菜單下的工具配置中配置的工具。
Save
保存活動文件
SaveAll
保存所有打開的文件
SaveAs
引號 ("") 中是文件名
將活動文件用指定的文件名保存。文件名必須在引號中。文件名中可以使用「^s」。UltraEdit 將其取代為活動窗口中當前選中的文本。同樣可以使用「^c」且 UltraEdit 會將其替換為剪貼板中的內容。
SelectAll
選中文件中的所有文本
SelectLine
選中活動行中的所有文本
SelectToBottom
選中從當前位置到文件末端的所有文本
SelectToTop
選中從文件起始到當前位置的所有文本
SelectWord
選中當前詞語 (象雙擊一個詞語一樣)
SortAsc
IgnoreCase 排序時忽略字元的大小寫。
RemoveDup 刪除重復的行。
Numeric 根據數值排序,不是根據字元順序排序。無法在替換或本地排序中使用。
替換 表示替換排序防範中應該使用的排序。在替換排序方法中僅可以使用單個排序鍵。
本地 表示排序應該針對本地。無法與替換參數一起使用。
排序鍵對(數值),每個值之間用空格隔開。
按升序歸類文件或選中的文本。
例如:
SortAsc IgnoreCase RemoveDup Numeric 1 -1 0 0 0 0 0 0
SortDes
IgnoreCase 排序時忽略字元的大小寫。
RemoveDup 刪除重復的行。
Numeric 根據數值排序,不是根據字元順序排序。無法在替換或本地排序中使用。
替換 表示替換排序防範中應該使用的排序。在替換排序方法中僅可以使用單個排序鍵。
本地 表示排序應該針對本地。無法與替換參數一起使用。
排序鍵對(數值),每個值之間用空格隔開。
用降序方式排序文件或選定的文本。
例如:
SortDes RemoveDup Locale 0 -1 0 0 0 0 0 0
SpacesToTabs
轉換文件內的 (行首) 空格為製表符
SpacesToTabsAll
轉換文件內的所有空格為製表符
StartSelect
開始選擇。這將打開選擇模式運行。所有游標動作或位置將被用來選擇文本。 EndSelect 用來停止選擇模式。已選文本將保持選中狀態直到正常編輯時其他命令導致其不被選中。
TabsToSpaces
轉換文件中的所有製表符到空格
Template
模板號 (#)
插入指定的模板到文件中
TimeDate
在文件的當前位置插入時間和日期
ToCaps
選定文本中的每個詞語首字大寫
ToEBCDIC
轉換文本到 EBCDIC 格式
ToggleBookmark
在當前行設置或刪除書簽
ToLower
轉換選定的文本到小寫字母
Top
跳到文件起始位置
ToUpper
轉換選定的文本為大寫字母
TrimTrailingSpaces
刪除當前文件中每行後面的多餘空格
UnicodeToASCII
從 Unicode 到 ASCII 轉換文件
UnixMactoDos
從 Mac/Unix 到 DOS 格式轉換活動文件 (行終止符)
UnixReOff
切換正則表達式到 UltraEdit 樣式的正則表達式 (非 Unix)
UnixReOn
切換正則表達式到 Unix 樣式的正則表達式
WrapToReturn
執行換行時所在列的列號 (#)。列號為 0 則表示換行發生在窗口邊緣
將文件從自動換行轉換為硬回車
* 當在參數列中出現 (#) 時,此處應填入數值。同樣,在參數列中出現 ("") 時,在引號中應填入字元串。文本描述只是參數的含義。 所有的字元串參數必須是最後一個參數。