示例:如果我有一个有2个空格缩进的文档,我想让它有4个空格缩进,我如何通过使用Sublime文本编辑器自动转换它?


当前回答

我还遵循了Josh Frankel的建议,创建了Sublime Macro +添加键绑定。不同之处在于,这个脚本确保首先将空格设置为制表符,然后将制表符大小设置为2。如果这不是起点,宏就不能工作。

以下是宏观的要点: https://gist.github.com/drivelous/aa8dc907de34efa3e462c65a96e05f09

在Mac中,使用宏+键绑定:

创建一个名为spaces2to4的文件。sublime-宏和从要点复制/粘贴代码。对我来说,它位于:

/Library/Application\ Support/Sublime\ Text\ 3/Packages/User/spaces2to4. Sublime -宏

选择Sublime Text > Preferences > Key Bindings 将此命令添加到User指定的sublime-keymap(它在数组中——它可能是空的):

{
    "keys": ["super+shift+o"],
    "command": "run_macro_file",
    "args": {
        "file":"Packages/User/spaces2to4.sublime-macro"
    }
}

现在⌘+ shift + o现在自动将每个文件从2个空格缩进转换为4(但如果您进一步运行它,将保持缩进)

其他回答

您必须将以下代码添加到您的自定义键绑定:

{ "keys": ["ctrl+f12"], "command": "set_setting", "args": {"setting": "tab_size", "value": 4} }

通过按ctrl+f12,它将重新缩进你的文件TAB大小为4。如果你想要一个不同的标签大小,你只需改变“值”的数字。Te格式是一个简单的json。

我还遵循了Josh Frankel的建议,创建了Sublime Macro +添加键绑定。不同之处在于,这个脚本确保首先将空格设置为制表符,然后将制表符大小设置为2。如果这不是起点,宏就不能工作。

以下是宏观的要点: https://gist.github.com/drivelous/aa8dc907de34efa3e462c65a96e05f09

在Mac中,使用宏+键绑定:

创建一个名为spaces2to4的文件。sublime-宏和从要点复制/粘贴代码。对我来说,它位于:

/Library/Application\ Support/Sublime\ Text\ 3/Packages/User/spaces2to4. Sublime -宏

选择Sublime Text > Preferences > Key Bindings 将此命令添加到User指定的sublime-keymap(它在数组中——它可能是空的):

{
    "keys": ["super+shift+o"],
    "command": "run_macro_file",
    "args": {
        "file":"Packages/User/spaces2to4.sublime-macro"
    }
}

现在⌘+ shift + o现在自动将每个文件从2个空格缩进转换为4(但如果您进一步运行它,将保持缩进)

与IDLE ->格式,tabify或CTRL+F5

我在圣

在我心中,我找到了一个比《曼格尼》更简单的解决方案:

在mac:

"cmd+f" => "  "(two spaces) => "alt+enter" => "arrow right" => "  "(two more spaces) => set tab width to 4(this can be done before or after.

在windows或其他平台上,更改cmd+f和alt+enter,无论你找到并选择所有热键。

注意:如果在代码中有多个空格,则此方法容易出现“错误”。因此,这种方法不如马格尼的方法安全,但速度更快(至少对我来说)。

实际上,我发现这样定义用户偏好对我的理智更好:

"translate_tabs_to_spaces": true,
"tab_size": 2,
"indent_to_bracket": true,
"detect_indentation": false

detect_indentation: false尤其重要,因为它迫使Sublime在每个文件中都尊重这些设置,而不是View -> Indentation设置。

如果你想要花哨,你也可以定义一个键盘快捷键来自动重新缩进你的代码(YMMV)通过在Sublime粘贴以下->首选项->键绑定-用户:

[
  { "keys": ["ctrl+i"], "command": "reindent" }
]

为了可视化空白:

"indent_guide_options": ["draw_active"],
"trim_trailing_white_space_on_save": true,
"ensure_newline_at_eof_on_save": true,
"draw_white_space": "all",
"rulers": [120],