例子:如果我有一个两个空格缩进的文档,并且我想要它有四个空格缩进,我应该如何使用Sublime Text编辑器自动转换?
例子:如果我有一个两个空格缩进的文档,并且我想要它有四个空格缩进,我应该如何使用Sublime Text编辑器自动转换?
以下是在Sublime Text 2或3中将文档中的缩进空格转换的巧妙技巧。
TL;DR:
将2个空格转换为4个空格:
确保制表符宽度设置为2。将您的2个空格缩进转换为制表符,切换到制表符宽度4,然后将缩进转换回空格。
详细描述:
前往:
View -> Indentation
应该显示如下:
Indent using spaces [x]
Tab width: 2
选择:
Convert Indentation to Tabs
然后选择:
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
中粘贴以下内容来定义一个快捷键以自动重新缩进你的代码(效果可能因人而异):
[
{ "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],
"cmd+f" => " "(two spaces) => "alt+enter" => "arrow right" => " "(two more spaces) => set tab width to 4(this can be done before or after.
cmd+f
和alt+enter
更改为您的查找
和全选
快捷键。RubyFormat
这样的格式化插件,那么你可以简单地设置所需的制表符大小,然后重新格式化代码。在 RubyFormat
的情况下,这将是 cmd+shift+R
。 - Automatico虽然很多建议适用于将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" }
]
我为此编写了一个插件。你可以在这里找到它,或者在包控制中搜索“ReIndent”。它主要与Kyle Finley编写的内容相同,但提供了方便的快捷键,在2和4之间进行转换。
(^|\G) {2}
(这里为了清晰起见使用了" {2}" <space>{2}
的写法)\t
。{ "keys": ["ctrl+f12"], "command": "set_setting", "args": {"setting": "tab_size", "value": 4} }
{ "keys": ["ctrl+f10"], "command": "set_setting", "args": {"setting": "translate_tabs_to_spaces", "value": 2} }, { "keys": ["ctrl+f11"], "command": "set_setting", "args": {"setting": "tab_size", "value": 2} }, { "keys": ["ctrl+f12"], "command": "set_setting", "args": {"setting": "tab_size", "value": 4} },
- JREAMspaces2to4.sublime-macro
的文件,并从要点中复制/粘贴代码。对我而言,该文件位于:
/Library/Application\ Support/Sublime\ Text\ 3/Packages/User/spaces2to4.sublime-macro
Sublime Text
> Preferences
> Key Bindings
{
"keys": ["super+shift+o"],
"command": "run_macro_file",
"args": {
"file":"Packages/User/spaces2to4.sublime-macro"
}
}
⌘ + shift + o
快捷键会自动将每个文件从2个空格缩进转换为4个空格缩进(但如果您继续运行它,它仍会保留缩进)。使用IDLE -> 格式化,制表符或CTRL+F5
我无法在st中使它变得简单