UltraEdit紧密匹配大括号

时间:2015-06-08 20:49:44

标签: ultraedit

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

1 个答案:

答案 0 :(得分:1)

UltraEdit for Windows v23.20引入了使用支持自动完成字符串自动完成智能插入大括号和引号的功能。

  

支持自动完成

     
      
  • 在打开大括号
  • 时,自动关闭wordfile中定义的大括号对   
  • 如果wordfile中没有大括号,或者文件没有​​突出显示语法,则使用“()”,“{}”和“[]”作为默认值
  •   
  • 按Enter键将在单独的行上重新定位近支撑,同时保持适当的缩进级别
  •   
  • 自动完成后立即按退格键将删除左右括号
  •   
  • 在不插入第二个支撑
  • 的情况下,键入紧密支撑会跳过自动完成的闭合支撑   
  • 可以针对非突出显示(纯文本)文件禁用
  •   
  • 可以为评论和字符串禁用
  •   
     

字符串自动完成

     
      
  • 可以针对非突出显示(纯文本)文件禁用
  •   
  • 可以停用评论
  •   

可以在编辑器 - 大括号/字符串的配置中找到这两个功能的自定义设置。

UEStudio v16.20使用与UltraEdit for Windows v23.20相同的配置设置引入了相同的功能。

以前版本的UEStudio,以UltraEdit作为核心编辑引擎的IDE,从一开始就具有这些功能,可以通过菜单高级菜单打开,在 IDE - IntelliTips - Miscellaneous 的配置中自定义点击菜单项配置或点击项目设置上的功能区标签高级

但是,之前v23.20的UltraEdit for Windows版本没有这些功能。

但是,使用一个宏可以很容易地实现{}之间设置插入符号的非智能插入,该宏按下该键以将{作为热键插入宏中

如何创建一个或多个新的UltraEdit宏,这些宏一起保存到一个宏文件中,配置为在启动UltraEdit时自动加载,我在Search and replace with term list?

的答案中有解释。

{的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

时,此宏才会在}的{​​{1}}按键上{附加{ strong>或 h (无论如何)。对于所有其他文件,只需在活动模式下按下宏的热键(插入或重击模式)即可输入{

我建议为(添加)更为智能的代码:

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 删除插入的)后插入(在行中间某处是很烦人的。