【问题标题】:How to replace four spaces with a tab in Sublime Text 2?如何在 Sublime Text 2 中用制表符替换四个空格?
【发布时间】:2012-03-23 11:04:37
【问题描述】:

我想用制表符替换另一个文本编辑器编写的所有“四个空格”。我该怎么做?

【问题讨论】:

    标签: editor sublimetext


    【解决方案1】:

    状态栏右下角,单击Spaces: N(或Tab Width: N,其中N是整数),确保显示Tab Width: 4用于从四个空格转换,然后从上下文中选择Convert Indentation to Tabs首次点击后将出现的菜单。

    同样,如果您想反其道而行之,请单击状态栏上的SpacesTab Width 文本并从同一菜单中进行选择。

    【讨论】:

    • 虽然所有答案都是正确的,但这是最简单的一个!谢谢
    • 必须承认;它是:) 从来没有使用过状态栏上下文菜单,我猜我一直以为它们是静态指示器。
    • 它们并不像他们应该的那样突出,我有几个错误我必须提交给崇高的不显示塞子。优秀的编辑。
    • 如果您希望编辑器为项目中的所有文件记住此设置,也可以使用sublime-project file 中的设置
    • @phreakhead 我不确定我是否完全理解您的需求(考虑打开一个新问题?),但如果您将 translate_tabs_to_spaces 设置为 false,那么当您输入(新文本)并点击制表符,它将是一个制表符。如果您的文件已经有一些缩进作为 4 个空格(而不是制表符),您可以使用屏幕截图中菜单底部的选项将缩进转换为制表符。
    【解决方案2】:

    全选,然后:

    Windows / Linux:

    Ctrl+Shift+p

    然后输入“缩进”


    苹果机:

    Shift+命令+p

    然后输入“缩进”

    【讨论】:

    • 这是保持双手在键盘上的最快速度。 +1
    • 太棒了...这使您可以选择从带有 2 行缩进的 Bootstrap 等文件中“重新缩进行”
    • 我认为这并不完全符合他的要求。这也重新缩进了行,因此它实际上改变了缩进,他只是询问将空格转换为制表符。无论如何,这是一个很好的答案,但在某些情况下,它会弄乱你的缩进(例如刀片缩进模板)。
    • 这更好,因为它在复制粘贴代码时效果很好。
    【解决方案3】:

    要将 Sublime 配置为始终使用选项卡,请尝试将以下内容添加到首选项->设置-用户:

    {
        "tab_size": 4,
        "translate_tabs_to_spaces": false
    }
    

    更多信息在这里:http://www.sublimetext.com/docs/2/indentation.html

    【讨论】:

    • 这是正确的答案,因为即使选择了“使用空格缩进”,该选项也会在重启时重置。
    • OP 要求相反。奇怪的是,没有选择。讨厌标签的人。
    【解决方案4】:

    在主菜单上;

    View -> Indentation -> Convert Indentation to Tabs / Spaces

    【讨论】:

      【解决方案5】:

      \t(反斜杠-t,制表符)执行正则表达式“搜索”,并替换为四个空格。

      无论是主菜单,还是右下方的状态栏间距菜单都可以做同样的事情,而且工作量更少。

      【讨论】:

      • 这与发帖者的要求相反
      • @MaxNanasy 是这样。我想我对制表符的厌恶是如此之深以至于是潜意识的。
      • 这个答案与所问的问题完全无关。请考虑将其更改为正确答案或以其他方式删除您的答案。
      • @AndrewDunn “完全”?真的吗?事物的反面怎么可能“完全”不相关?根据定义,它是相关的,并且修复是显而易见的。要是我们有能力编辑答案就好了。
      【解决方案6】:

      以最快的方式创建一个键绑定

      { "keys": ["super+alt+t"], "command": "unexpand_tabs", "args": { "set_translate_tabs": true } }

      将此添加到 Preferences > Key Bindings (user) 当您按 super+alt+t 时,它会将空格转换为制表符

      【讨论】:

        【解决方案7】:

        您可以添加简单的键绑定:

        首选项 > 键绑定 - 用户:

        [
            { "keys": ["super+l"], "command": "reindent"},
        ]
        

        现在选择行或文件并点击:command + l

        【讨论】:

          【解决方案8】:

          如果您想将此更改递归地应用到目录中的所有文件,您可以使用 Find > Find in Files... 模式:

          编辑我没有在图片中突出显示它,但是您必须单击左侧的 .* 按钮才能让 Sublime 将 Find 字段解释为正则表达式 /Edit em>

          编辑 2 我忽略了在正则表达式中添加字符串锚的开头。我在下面进行更正,并会在有机会时更新图像/Edit

          查找字段^[^\S\t\n\r]{4} 中的正则表达式将匹配4 个一组的空白字符(不包括制表符和换行符)。替换字段\t 表示您想用制表符替换它们。

          如果您单击“位置”字段右侧的按钮,您将看到可帮助您定位搜索、替换的选项。 Add Folder 选项将让您选择要从中递归搜索的文件夹。 Add Include Filter 选项可让您将搜索限制为特定扩展名的文件。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2014-01-07
            • 2013-02-07
            • 2014-05-11
            • 2014-04-27
            • 2012-03-17
            • 2017-06-10
            • 1970-01-01
            相关资源
            最近更新 更多