如何修复/转换Sublime Text中的空格缩进?
示例:如果我有一个带有2个空格缩进的文档,并且希望它有4个空格缩进,那么如何使用Sublime Text编辑器自动转换它?
这是Sublime Text 2或者3中用于在文档中转换缩进间距的巧妙方法。
TL; DR:
从2个空格转换为4个空格:
确保选项卡宽度设置为2.将您的2-空间缩进转换为制表符,切换到制表符宽度4,然后将缩进转换回空格。
详细说明:
去:
View -> Indentation
它应该是:
-
Indent using spaces [x]
-
Tab width: 2
select:
-
Convert Indentation to Tabs
然后select:
-
Tab width: 4
-
Convert Indentation to Spaces
完成。
我实际上发现,让我的理智更好地定义用户喜好是这样的:
"translate_tabs_to_spaces": true, "tab_size": 2, "indent_to_bracket": true, "detect_indentation": false
detect_indentation: false
特别重要,因为它强制Sublime在每个文件中遵守这些设置,而不是View -> Indentation
设置。
如果你想要看起来,你也可以定义一个键盘快捷键,通过在Sublime -> Preferences -> Key Binding - User
粘贴以下代码自动重新缩进代码(YMMV)
[ { "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],
在我看来,我发现比Magne更简单的解决scheme:
在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
任何你find
并select all
热键。
注意:如果您的代码中有多个空格,则此方法很容易出现“错误”。 因此它比Magne的方法更安全,但速度更快(至less对我来说)。
虽然许多build议工作转换2 – > 4空间。 转换4 – > 2时遇到了一些问题。
这是我最终使用的:
Sublime Text 3/Packages/User/to-2.sublime-macro
[ { "args": null, "command": "select_all" }, { "args": { "set_translate_tabs": true }, "command": "unexpand_tabs" }, { "args": { "setting": "tab_size", "value": 1 }, "command": "set_setting" }, { "args": { "set_translate_tabs": true }, "command": "expand_tabs" }, { "args": { "setting": "tab_size", "value": 2 }, "command": "set_setting" } ]
如果你发现search和replace使用更快,你可以使用这样的正则expression式replace:
查找(正则expression式): (^|\G) {2}
(而不是“{2}” <space>{2}
您可以只写两个空格。
换成4个空格,或者你想要的任何东西,比如\t
。
我为它写了一个插件。 你可以在这里find它,或者在包控件中查找“ReIndent”。 它大部分与凯尔·芬利(Kyle Finley)写的一样,但是用方便的方式将2和4之间的转换换成了快捷方式,反之亦然。
您必须将此代码添加到您的自定义键绑定中:
{ "keys": ["ctrl+f12"], "command": "set_setting", "args": {"setting": "tab_size", "value": 4} }
通过按Ctrl + F12,它会将您的文件重新制作为4的制表大小。如果您想要不同的制表大小,只需更改“值”数字。 Te格式是一个简单的json。