我已经从Netbeans转移到Sublime Text,这只是让你远离梦想设置的那些小事之一。
如果你在支架中间按Enter键,它会执行以下操作:
$var = {
| <-- cursor
}
但是当你在括号或括号中这样做时,它会这样做:
$var = (
|)
和
$var = [
|]
我在设置花括号的键绑定中找不到。知道如何让这两个像花括号一样工作吗?提前谢谢。
答案 0 :(得分:2)
不确定您使用的系统,但可以在OSX密钥映射文件的第418行找到此密钥绑定。
{ "keys": ["enter"], "command": "run_macro_file", "args": {"file": "res://Packages/Default/Add Line in Braces.sublime-macro"}, "context":
[
{ "key": "setting.auto_indent", "operator": "equal", "operand": true },
{ "key": "selection_empty", "operator": "equal", "operand": true, "match_all": true },
{ "key": "preceding_text", "operator": "regex_contains", "operand": "\\{$", "match_all": true },
{ "key": "following_text", "operator": "regex_contains", "operand": "^\\}", "match_all": true }
]
}
当您按enter
时,它会运行宏文件res://Packages/Default/Add Line in Braces.sublime-macro
。 preceding_text
和following_text
是一个正则表达式,用于定义何时运行该命令。
默认情况下,它设置为仅在光标前面有一个大括号时运行,后面跟一个大括号。您可以更新正则表达式以包括括号和括号,并且当光标位于它们之间时它将运行。
答案 1 :(得分:0)
不幸的是,@ Darrick Herwehe发布的答案对我来说并不起作用,这就是我最终尝试过的工作,并且终于像魅力一样工作。
将其添加到用户键绑定
{ "keys": ["enter"], "command": "run_macro_file", "args": {"file": "res://Packages/User/Array Indent.sublime-macro"}, "context":
[
{ "key": "setting.auto_indent", "operator": "equal", "operand": true },
{ "key": "selection_empty", "operator": "equal", "operand": true, "match_all": true },
{ "key": "preceding_text", "operator": "regex_contains", "operand": "array\\s*?\\($", "match_all": true },
{ "key": "following_text", "operator": "regex_contains", "operand": "^\\)", "match_all": true }
]
}
然后触摸&amp;将内容写入Packages/User/Array Indent.sublime-macro
[
{"command": "insert", "args": {"characters": "\n\n"} },
{"command": "left_delete", "args": null},
{"command": "move", "args": {"by": "lines", "forward": false} },
{"command": "move_to", "args": {"to": "hardeol", "extend": false} },
{"command": "reindent", "args": {"single_line": true} }
]