⑴ 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 则表示换行发生在窗口边缘
将文件从自动换行转换为硬回车
* 当在参数列中出现 (#) 时,此处应填入数值。同样,在参数列中出现 ("") 时,在引号中应填入字符串。文本描述只是参数的含义。 所有的字符串参数必须是最后一个参数。