我如何强迫Sublime文本缩进时每个 tab 表示两个空格?

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

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

235549 次浏览

如果你想要所有文件,转到Preferences -> Settings - Default/User。但正如下面的一些评论所指出的,特定于语法的设置可以将其限制为您所选择的语言。

要将此配置限制为Ruby文件,首先在编辑器中打开一个Ruby文件,然后转到Preferences -> Settings - Syntax Specific。这将打开一个名为Ruby.sublime-settings的设置窗口

保存这些设置:

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

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

# EYZ0

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

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

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

你也可以在Sublime text 2的底部栏(右侧)的文本链接中这样做,默认情况下说“Tab Size 4”,点击它,一个窗口就会出现选项,可以设置制表符大小从1个空格一直到8个空格,包括选项转换制表符到空格和空格到制表符。

看起来是这样的:

Tab Options in Sublime Text 2

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

# EYZ0

[*.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行,制表符仍然是五个空格。然后我意识到从ruby文件中选择# eyz0会打开Ruby on Rails.sublime-settings,而不是Ruby.sublime-settings

我将Ruby on Rails.sublime-settings文件重命名为Ruby.sublime-settings。两个空格制表符终于起作用了!为了确保安全,我在Ruby on Rails.sublime-settings中也设置了相同的设置。

我使用愚蠢的缩进包。

# eyz0 -> # eyz1

# eyz0 -> # eyz1 -> # eyz2 -> # eyz3

复制设置(Ruby部分)到。

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