升华文本3中的自动css结束括号

升华文本3中的自动css结束括号,css,sublimetext3,Css,Sublimetext3,创建新的CSS规则时,我希望右括号自动放在类名的正下方,因此,稍后,它将与最后一个属性:值对保持在同一行: .rule { display: block; clor: #000; } 我尝试了“自动匹配启用”:false,但这只是禁用了右括号,所以我需要手动添加它 我已经安装了PackageResourceViewer并查看了CSS.sublime-syntax和CSS_completions.py,但找不到任何相应的设置或代码。我在默认代码段中也没有找到任何内容 编辑 我怎样才能得到低于预期

创建新的CSS规则时,我希望右括号自动放在类名的正下方,因此,稍后,它将与最后一个属性:值对保持在同一行:

.rule {
display: block;
clor: #000; }
我尝试了“自动匹配启用”:false,但这只是禁用了右括号,所以我需要手动添加它

我已经安装了PackageResourceViewer并查看了CSS.sublime-syntax和CSS_completions.py,但找不到任何相应的设置或代码。我在默认代码段中也没有找到任何内容

编辑 我怎样才能得到低于预期的结果

.rule {
  | }

要确定按键时发生的情况,请使用
View>Show console
或相关键打开升华控制台,然后输入
Sublime.log\u commands(True)
打开命令日志记录,然后执行操作

在这种情况下,您可以看到:

.rule{|}
按Enter键时,触发的命令是:

command: run_macro_file {"file": "res://Packages/Default/Add Line in Braces.sublime-macro"}
由此,您可以确定键已绑定到
运行\u宏\u文件
,并且宏正在执行此操作。如果查看默认密钥绑定,则密钥绑定为:

{“keys”:[“enter”],“command”:“run_macro_file”,“args”:{“file”:res://Packages/Default/Add 大括号中的行。升华宏“}”,上下文:
[
{“key”:“setting.auto_indent”,“operator”:“equal”,“operator”:true},
{“key”:“selection_empty”,“operator”:“equal”,“operator”:true,“match_all”:true},
{“key”:“preference\u text”,“operator”:“regex\u contains”,“operator”:“\\{$”,“match\u all”:true},
{“key”:“following_text”,“operator”:“regex_contains”,“operator”:“^\\}”,“match_all”:true}
]
},

这是,如果按下“输入”而“代码>自动缩进< /代码>打开,则选择为空,光标位于两个括号的中间<代码> {} /代码>,运行宏,它采取插入多行的步骤。

简单地说,您可以通过关闭
自动缩进
来阻止这种情况的发生。但是,一般来说,这不是一个可行的解决方案,因此您需要在
用户
包中创建一个密钥绑定,在相同的情况下,它不会执行此操作,而只执行
输入
将执行的操作:

{“keys”:[“enter”],“command”:“insert”,“args”:{“characters”:“\n”},“context”:
[
{“key”:“selector”,“operator”:“equal”,“operator”:“source.css”},
{“key”:“setting.auto_indent”,“operator”:“equal”,“operator”:true},
{“key”:“selection_empty”,“operator”:“equal”,“operator”:true,“match_all”:true},
{“key”:“preference\u text”,“operator”:“regex\u contains”,“operator”:“\\{$”,“match\u all”:true},
{“key”:“following_text”,“operator”:“regex_contains”,“operator”:“^\\}”,“match_all”:true}
]
},
这与上面的绑定相同,但是现在
命令只插入一行,并且它还通过
选择器中的
source.CSS
匹配将自身约束为CSS文件

在这种情况下,按下该键时,css如下所示:

.rule{
|}

编辑

insert
命令的
characters
参数中的文本可以设置为您想要键入的任何文本,因此您可以例如将其设置为
“\n\t”
“\n”
(换行符和两个空格),以便在新行上有一点缩进

为了获得如下结果,需要使用稍微不同的命令:

.rule {
  | }
此处,光标前后都有空格,因此无法使用
insert
命令,因为光标总是在插入最后一个字符后结束

一种方法是创建一个类似于该键默认绑定的宏,但另一种方法是使用
insert\u snippet
命令。这可以插入一个代码段文件,但它也接受一个参数
contents
,该参数直接告诉它代码段内容

考虑到这一点,上述密钥绑定可以表示为:

{“keys”:[“enter”],“command”:“insert_snippet”,“args”:{“contents”:“\n\t$0\t”},“context”:
[
{“key”:“selector”,“operator”:“equal”,“operator”:“source.css”},
{“key”:“setting.auto_indent”,“operator”:“equal”,“operator”:true},
{“key”:“selection_empty”,“operator”:“equal”,“operator”:true,“match_all”:true},
{“key”:“preference\u text”,“operator”:“regex\u contains”,“operator”:“\\{$”,“match\u all”:true},
{“key”:“following_text”,“operator”:“regex_contains”,“operator”:“^\\}”,“match_all”:true}
]
},
insert_snippet
展开代码段文本(包括任何字段,如果有),然后将光标放在
$0
,如果没有提供,则默认为插入内容的结尾

插入
\t
字符将插入一个制表符,该制表符将是一个物理制表符,除非启用了
将制表符转换为空格
,在这种情况下,插入将使用与
制表符大小当前设置为相同数量的空格替换
\t


如果需要,您当然也可以使用特定数量的空格字符。

谢谢!请看我编辑的原始问题。如何使光标缩进,如何自动保持右括号和光标之间的间距?我试图摆弄你贴在这里的键绑定,但我什么也没做。@yendrrek是基于选项卡大小的光标前后的空间量?或者之前是制表符大小和af
.rule {
  | }