Autocomplete 升华文本3不在分号前对引号

Autocomplete 升华文本3不在分号前对引号,autocomplete,sublimetext3,sublimetext,Autocomplete,Sublimetext3,Sublimetext,Sublime Text 3具有引号自动配对功能,功能完美。然而,由于某种原因,当后面的字符是分号时,它将停止工作。因此,在此处输入单引号或双引号: echo ^ 将输入两个引号并将光标放在它们之间,同时在此处执行相同操作: echo ^; 将导致升华文本3仅输入开头单引号或双引号 我在用PHP编程时遇到了一个小问题,我通常先输入分号,然后再回到那一行编写实际代码。许多代码段和宏也输入分号。因此,在这种情况下,ST3的这种行为有点恼人 是否有任何解释,为什么升华文本3中的自动对在分号之前不

Sublime Text 3具有引号自动配对功能,功能完美。然而,由于某种原因,当后面的字符是分号时,它将停止工作。因此,在此处输入单引号或双引号:

echo ^ 
将输入两个引号并将光标放在它们之间,同时在此处执行相同操作:

echo ^;
将导致升华文本3仅输入开头单引号或双引号

我在用PHP编程时遇到了一个小问题,我通常先输入分号,然后再回到那一行编写实际代码。许多代码段和宏也输入分号。因此,在这种情况下,ST3的这种行为有点恼人


是否有任何解释,为什么升华文本3中的自动对在分号之前不起作用?而且——最重要的是——是否有办法解决此问题?

默认情况下,只有当下列字符是
\t
(制表符)、
(空格)、
]
或在行尾时,升华才会自动配对引号。幸运的是,通过基于默认键绑定创建自定义键绑定,可以轻松修改此规则。打开
首选项->键绑定用户
并添加以下内容(如果文件为空,则在开始处用一个方括号将所有内容括起来
[
,在结束处用一个方括号将所有内容括起来
[]
):

//允许在分号之前使用匹配的引号
//双引号
{“keys”:[“\”“]”,“command”:“insert\u snippet”,“args”:{“contents”:“\“$0\”},“context”:
[
{“key”:“setting.auto_match_enabled”,“operator”:“equal”,“operator”:true},
{“key”:“selection_empty”,“operator”:“equal”,“operator”:true,“match_all”:true},
{“key”:“following_text”,“operator”:“regex_contains”,“operator”:“^(?::\t| | \\)\124;]\ 124; \\}}>,“match|u all”:true},
{“key”:“previous_text”,“operator”:“not_regex_contains”,“operator”:“[\“a-zA-Z0-9_]$”,“match_all”:true},
{“key”:“eol_选择器”,“operator”:“not_equal”,“operator”:“string.quoted.double”,“match_all”:true}
]
},
//单引号
{“keys”:[“'”],“command”:“insert_snippet”,“args”:{“contents”:“$0'”},“context”:
[
{“key”:“setting.auto_match_enabled”,“operator”:“equal”,“operator”:true},
{“key”:“selection_empty”,“operator”:“equal”,“operator”:true,“match_all”:true},
{“key”:“following_text”,“operator”:“regex_contains”,“operator”:“^(?::\t| | \\)\124;]\ 124; \\}}>,“match|u all”:true},
{“key”:“preference_text”,“operator”:“not_regex_contains”,“operator”:“['a-zA-Z0-9_]$”,“match_all”:true},
{“key”:“eol_选择器”,“运算符”:“not_equal”,“操作数”:“string.quoted.single”,“match_all”:true}
]
},
//花括号
//括号和方括号已经起作用了
{“keys”:[“{”],“command”:“insert_snippet”,“args”:{“contents”:“{$0}”,“context”:
[
{“key”:“setting.auto_match_enabled”,“operator”:“equal”,“operator”:true},
{“key”:“selection_empty”,“operator”:“equal”,“operator”:true,“match_all”:true},
{“key”:“following_text”,“operator”:“regex_contains”,“operator”:“^(?::\t|124;\\)\124;]\ 124;\\}$\ 124;”),“match_all”:true}
]
}
每个规则中的关键行如下所示:

{“key”:“following_text”,“operator”:“regex_contains”,“operator”:“^(?::\t||\\)\124;]\ 124;\\\}>|$|”),“match|u all”:true},
如果您发现要在另一个字符之前自动配对,只需在
“operand”
中的分号后放置一个管道
,然后添加所需的字符


我应该注意,这将在Sublime文本2和3中都起作用。

@trejder很高兴我能提供帮助!