崇高按压进入支架中间

时间:2015-03-18 10:43:28

标签: sublimetext sublimetext3

我已经从Netbeans转移到Sublime Text,这只是让你远离梦想设置的那些小事之一。

如果你在支架中间按Enter键,它会执行以下操作:

$var = {
    | <-- cursor
}

但是当你在括号或括号中这样做时,它会这样做:

$var = (
    |)

$var = [
|]

我在设置花括号的键绑定中找不到。知道如何让这两个像花括号一样工作吗?提前谢谢。

2 个答案:

答案 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-macropreceding_textfollowing_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} }
]