【问题标题】:Automatically convert indentation from 2 to 4 spaces in Sublime Text 3在 Sublime Text 3 中自动将缩进从 2 个空格转换为 4 个空格
【发布时间】:2020-11-08 11:01:38
【问题描述】:

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

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

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

我认为我不需要提及每个文件的工作量太大。有人建议Reindent 选项,但根据我的经验,它几乎无法正常工作。

是否有一些构建方式,或者可能是一个包来一步转换缩进?

【问题讨论】:

    标签: sublimetext3 sublimetext indentation


    【解决方案1】:

    在 Sublime Text 中将缩进转换为个人偏好可能是一项乏味的任务,正如您所观察到的,在 StackOverflow 上经常会提到它。事实上 4 年前我answered a question 几乎完全列出了您在问题中列出的步骤。

    我也发现 3 个 Command Pallette reindent 命令有点喜怒无常,有时会按照我认为他们应该做的那样工作,有时(似乎是)什么都不做。不过没关系……

    当然有一种方法可以一次性执行您列出的操作;使用宏。

    复制并粘贴下面的宏代码,并将其作为IndentationTo4Spaces.sublime-macro 保存在您的User 文件夹中。

    [
        { "command": "set_setting", "args": {"setting": "tab_size", "value": 2} },
        { "command": "unexpand_tabs", "args": {"set_translate_tabs": true} },
        { "command": "set_setting", "args": {"setting": "tab_size", "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", "command": "run_macro_file",
      "args": {"file": "res://Packages/User/IndentationTo4Spaces.sublime-macro"} },
    

    【讨论】:

    • 谢谢!第二个不应该是"set_translate_tabs": false吗?
    • 我不这么认为。宏中的命令是列表中 4 个步骤调用的命令(我使用命令日志记录来获取它们)。据我所知,宏工作得很好。你试过了吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-04-27
    • 1970-01-01
    • 2019-02-22
    • 2015-02-17
    • 2020-03-18
    • 2013-01-24
    相关资源
    最近更新 更多