2

在大多数文本编辑器中,如果你输入一个{"(你明白了),编辑器会自动输入相反的字符,并将你的光标放在两者之间。我注意到 UltraEdit 不这样做。有什么方法可以设置 UltraEdit 以关闭匹配的大括号?

4

1 回答 1

1

UltraEdit for Windows v23.20 引入了使用Brace auto-completionString 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
"{"

仅当活动文件的文件扩展名为ccpph(在任何情况下)时,此宏才会}额外插入到{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删除插入的内容很烦人,但)在插入(行中间的某个位置后却不需要。

于 2015-06-09T05:50:50.900 回答