ST3中自动缩进/缩进代码块的按键绑定

时间:2018-08-02 03:35:34

标签: sublimetext3 indentation auto-indent

有没有一种方法可以添加一个键绑定来重新插入Sublime Text 3中突出显示的代码块?

我知道Edit > Line > Reindent中有一个“ reindent”选项,但是它没有键绑定。

此外,这种重凹入功能并不是那么“聪明”,在某些情况下,它给出的结果很奇怪。是否有一个插件可以更好地解决此问题?

如果有帮助,我主要使用JavaScript进行编码。

1 个答案:

答案 0 :(得分:1)

涵盖问题的第一部分,可以将键绑定到菜单或命令面板中存在的任何内容,只需找出所需的命令和参数即可。

最简单的方法是使用 Ctrl +`View > Show Console打开Sublime控制台,然后输入命令sublime.log_commands(True),执行命令并查看其内容说:

>>> sublime.log_commands(True)
command: reindent {"single_line": true}

您可以使用False而不是True来运行命令命令以关闭日志记录,或者仅重新启动Sublime。

有了这些知识,您就可以使用通过使用Preferences > Key Bindings显示的命令和参数并在右侧窗格中添加绑定来创建键绑定。

在这种情况下,它将看起来像这样(适当更改密钥):

{
    "keys": ["ctrl+alt+r"],
    "command": "reindent",
    "args": {
        "single_line": true
    }
},

执行此操作后,不仅键绑定处于活动状态,Sublime还将在菜单项旁边的菜单中显示您在菜单中选择的键,以提醒您。

对于您的问题的第二部分,在Sublime中,代码的内部缩进和重新格式化确实不理想;部分原因是出于兼容性原因,其缩进系统由一些简单的正则表达式以与TextMate相同的方式提供支持。

在任何情况下,您都可以search Package Control获取第三方软件包,这些软件包可能允许更好地格式化/重新格式化代码。对于JavaScript,您可能想要JsFormat之类的东西。

通常,这样的软件包仅提供与完成工作的外部工具的集成,因此,您还需要安装外部第三方工具才能起作用。但是,在JsFormat的特定情况下,它将直接捆绑自己的格式化程序。