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