自动将Sublime Text 3中的缩进从2个空格转换为4个空格

问题描述

关于Sublime Text中的缩进的自动转换,有一些主题,但是我没有找到自动进行缩进的方法

我下载的许多文件都有缩进2,我讨厌,所以我想将它们转换为4。我要做的是:

  1. 选择Tab size: 2
  2. Convert indentation to Tabs
  3. 选择Tab size: 4
  4. Convert indentation to Spaces

我认为无需提及每个文件的太多工作。有人建议使用Reindent选项,但是根据我的经验,它几乎永远无法正常工作。

是否有某种构建方式,或者是一个可以一步转换缩进的软件包?

解决方法

将缩进转换为个人喜好在Sublime Text中是一项繁琐的任务,如您所见,在StackOverflow上经常会提到它。实际上,四年前,我answered a question几乎完全列出了您在问题中列出的步骤。

我也发现3个 Command Pallette reindent命令有点气质,有时按我认为应该的工作,有时却什么也没做。但是没关系...

当然,有一种方法可以一步执行您列出的动作;使用宏。

复制下面的宏代码并将其粘贴到User文件夹中,并将其另存为IndentationTo4Spaces.sublime-macro

[
    { "command": "set_setting","args": {"setting": "tab_size","value": 2} },{ "command": "unexpand_tabs","args": {"set_translate_tabs": true} },{ "command": "set_setting","value": 4} },{ "command": "expand_tabs","args": {"set_translate_tabs": true} }
]

您可以从菜单Tools --> Macros --> User --> IndentationTo4Spaces运行宏,设置键绑定,或向 Command Pallette 添加条目。

// Add keys to: Packages/User/Default (Linux/OSX/Windows).sublime-keymap
{ "keys": ["ctrl+shift+y"],"command": "run_macro_file","args": {"file": "res://Packages/User/IndentationTo4Spaces.sublime-macro"} },// Add command to: Packages/User/Default.sublime-commands
{ "caption": "Convert Indentation To 4 Spaces",