我正在尝试设置我的Sublime Text 3,但我无法进行所需的设置(在我的旧计算机上的ST2中工作)。
我需要什么
当我输入 CSS 时,我输入例如。color:
,我想自动完成color: |;
(其中|
是光标)。
到目前为止
,我找到了一个建议来添加
{ "keys": [":"], "command": "insert", "args": {"characters": ": ;"}}
成sublime-keymap
.它部分工作,它添加空格和分号,但如果在之后,而不是在里面,则为光标。
当我用谷歌搜索时,我有 99% 的结果是 ST2 而不是 ST3。
知道吗?谢谢。
insert
命令只是准确地插入您提供给它的文本,就像您自己键入它一样。如果要执行诸如插入文本之类的操作并指定光标结束的位置,则需要insert_snippet
。
默认键绑定有几个使用insert_snippet
作为命令绑定的键示例来演示这一点。例如:
// Auto-pair single quotes
{ "keys": ["'"], "command": "insert_snippet", "args": {"contents": "'$0'"}, "context":
[
{ "key": "setting.auto_match_enabled", "operator": "equal", "operand": true },
{ "key": "selection_empty", "operator": "equal", "operand": true, "match_all": true },
{ "key": "following_text", "operator": "regex_contains", "operand": "^(?:t| |\)|]|\}|>|$)", "match_all": true },
{ "key": "preceding_text", "operator": "not_regex_contains", "operand": "['a-zA-Z0-9_]$", "match_all": true },
{ "key": "eol_selector", "operator": "not_equal", "operand": "string.quoted.single - punctuation.definition.string.end", "match_all": true }
]
},
如此处所述,insert_snippet
命令将参数之一contents
作为其参数之一,它指定要插入的代码段的文本,并且此文本可以包含代码段字段等内容,就像sublime-snippet
文件一样。特殊字段$0
指定光标的放置位置。
此特定示例还包含context
项,这些项准确定义此绑定在什么情况下应处于活动状态。
如您的问题中所述,每次键入冒号时都会触发绑定,这会阻止您只键入单个冒号。因此,如果尚未添加上下文,则可能还需要向密钥添加上下文。
顺便说一句,Sublime Text 4 的一个功能是,在输入 CSS 属性时,它会自动注入一个像这样的片段。