在大多数文本编辑器中,如果你输入一个{
或"
(你明白了),编辑器会自动输入相反的字符,并将你的光标放在两者之间。我注意到 UltraEdit 不这样做。有什么方法可以设置 UltraEdit 以关闭匹配的大括号?
1 回答
UltraEdit for Windows v23.20 引入了使用Brace auto-completion和String auto-completion智能插入大括号和引号的功能。
大括号自动完成
- 键入左大括号时,wordfile 中定义的大括号对会自动关闭
- 如果 wordfile 中没有大括号,或者文件没有突出显示语法,则默认使用“()”、“{}”和“[]”
- 按 Enter 将在单独的行上重新定位右大括号,同时保持适当的缩进级别
- 在自动完成后立即按 Backspace 将删除左大括号和右大括号
- 键入右大括号会跳过自动完成的右大括号而不插入第二个大括号
- 可以为非高亮(纯文本)文件禁用
- 可以禁用注释和字符串
字符串自动补全
- 可以为非高亮(纯文本)文件禁用
- 可以禁用评论
这两个功能的自定义设置可以在Editor-Braces/strings的配置中找到。
UEStudio v16.20 引入了与 UltraEdit for Windows v23.20 相同的功能和相同的配置设置。
UEStudio 的早期版本,即以 UltraEdit 作为核心编辑引擎的 IDE,从一开始就具有这些功能,可以在IDE 的配置中进行自定义 - IntelliTips - Miscellaneous通过单击菜单项“配置”或单击“高级”功能区选项卡从“高级”菜单打开在项目设置上。
但 v23.20 之前的 UltraEdit for Windows 版本没有这些功能。
然而,一个非智能插入{
和}
设置插入符号可以很容易地通过一个宏来实现,该宏将按键插入{
分配给宏作为热键。
如何创建一个或多个新的 UltraEdit 宏并一起保存到一个宏文件中,该宏文件被配置为在 UltraEdit 启动时自动加载,在我的搜索和替换为术语列表的答案中进行了解释?
UltraEdit 宏代码为{
:
InsertMode
"{}"
Key LEFT ARROW
相同的概念可用于:
双引号
InsertMode
""""
Key LEFT ARROW
一个左方括号
InsertMode
"[]"
Key LEFT ARROW
和一个开口圆括号
InsertMode
"()"
Key LEFT ARROW
也可以为某些文件类型自定义宏,例如:
IfExtIs "c"
InsertMode
"{}"
Key LEFT ARROW
ExitMacro
EndIf
IfExtIs "cpp"
InsertMode
"{}"
Key LEFT ARROW
ExitMacro
EndIf
IfExtIs "h"
InsertMode
"{}"
Key LEFT ARROW
ExitMacro
EndIf
"{"
仅当活动文件的文件扩展名为c、cpp或h(在任何情况下)时,此宏才会}
额外插入到{
on 按键。对于所有其他文件,只需在活动模式(插入或覆盖模式)下按下宏的热键即可输入。{
{
我建议为宏插入(
更)
智能的代码:
InsertMode
"("
IfCharIs 13
")"
Key LEFT ARROW
ExitMacro
EndIf
IfCharIs 10
")"
Key LEFT ARROW
ExitMacro
EndIf
IfEof
")"
Key LEFT ARROW
EndIf
这个宏首先插入(
. 如果下一个字符是回车(十进制值 13)或换行符(十进制值 10)或插入符号位于文件末尾,)
则另外插入插入符号并将插入符号定位在括号之间。在所有其他情况下,只是(
插入到活动文件中。
此增强功能可以修改类似的条件
if(iVar == 1 || iVar == 3)
至
if((iVar == 1) || (iVar == 3))
暂时没有得到
if(()iVar == 1 || iVar == 3)
和
if((iVar == 1) || ()iVar == 3)
在这种情况下要求按键DEL删除插入的内容很烦人,但)
在插入(
行中间的某个位置后却不需要。