有一种方法强迫Sublime Text 2在处理Ruby文件时总是缩进两个空格?

我知道缩进可以在视图下设置->缩进菜单选项,但它不坚持。每次我打开一个新文件并点击tab,它就会返回到四个空格。


当前回答

如果你想强制你所选择的选项卡设置,忽略文件中可能已经发生的事情,那么你应该在你的配置中包含detect_indentation(你的用户设置或语法特定设置,取决于你是想要全局设置还是每个文件类型):

{
    "tab_size": 2,
    "translate_tabs_to_spaces": true,
    "detect_indentation": false
}

其他回答

如果你想为所有文件设置,请点击首选项->设置-默认/用户。但正如下面的一些评论所指出的,特定于语法的设置可以将其限制为您所选择的语言。

要将此配置限制为Ruby文件,首先在编辑器中打开一个Ruby文件,然后转到首选项->设置-语法特定。这将打开一个名为Ruby.sublime-settings的设置窗口

保存这些设置:

{
  "tab_size": 2,
  "translate_tabs_to_spaces": true,
  "detect_indentation": false
}

对任何其他语法类型重复操作,打开该类型的文件,然后回到首选项,为该语法打开正确的首选项文件。

我编辑了这包括“detect_indentation”行每个请求在评论;我以前使用默认/用户设置我的标签大小,不需要标签检测,但这是否由于全局配置或由于我很少打开带有标签的文件,我不知道。

重启应该不是必要的,尽管在某些情况下可能是必要的。

我可以推荐EditorConfig吗?有一个扩展可以自动加载和应用.editorconfig文件。然后在项目的根目录中创建一个。

editorconfig。

[*.rb]
indent_style = tab
indent_size = 2

这样,如果您为每个项目或语言使用不同的样式,则您的设置是特定于项目和特定于文件的。


下面是我自己的.editorconfig的样子。

# editorconfig.org
root = true

[*]
indent_style = space
indent_size = 2
end_of_line = lf
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true

如果你想强制你所选择的选项卡设置,忽略文件中可能已经发生的事情,那么你应该在你的配置中包含detect_indentation(你的用户设置或语法特定设置,取决于你是想要全局设置还是每个文件类型):

{
    "tab_size": 2,
    "translate_tabs_to_spaces": true,
    "detect_indentation": false
}

我遵循前面的答案,包括添加detect_indentation行,制表符仍然是五个空格。然后我意识到,从ruby文件中选择首选项->设置->更多->语法特定->用户是在打开ruby on Rails。是我的,不是ruby的。

我重新命名了Ruby on Rails。sublime-settings文件转换为Ruby.sublime-settings。两个空格制表符终于起作用了!我在Ruby on Rails中做了同样的设置。当然,还有崇高的设定。

我使用愚蠢的缩进包。

安装包->愚蠢缩进

首选项->包设置->愚蠢缩进->设置-用户

复制设置(Ruby部分)到。

{
    "configuration":
    [
        {
            "patterns": ["*.rb"],
            "tab_size": 2,
            "translate_tabs_to_spaces": true
        }
    ]
}