sublimetext3 - 即使我已经完成了所有设置,Sublime 仍然对某些文件使用 4-space tab 而不是 2-space tab,为什么以及如何修复?
问题描述
我正在 iMac 上使用 Sublime 3.2.2 编辑文件。
我已经将制表符大小设置为 2:
它适用于某些文件,但不适用于某些文件 - 剩余 4 个大小的选项卡。我什至找不到关于哪个是对的哪个不是的线索。
除了设置,我还需要检查其他地方吗?
解决方案
这里有两件事需要考虑。首先,此设置(此处显示为默认值):
// Set to false to disable detection of tabs vs. spaces on load
"detect_indentation": true,
启用此设置后,当文件打开时,会对其进行检查以尝试检测其缩进方式。这将tab_size
使用检测到的选项卡大小覆盖该特定文件中的 ,translate_taba_to_spaces
并且如果文件似乎以特定方式缩进,也可以覆盖。
该设置默认为这种方式,因此您可以使用您的设置来确定您希望如何创建新文件,同时仍然允许您以理智的方式处理现有文件;将其设置为false
关闭此检测。
第二要注意的是,可以按文件类型的方式设置首选项,这也会覆盖用户首选项中对该类型文件的设置。
例如,YAML
文件应用了这些设置(来自YAML/YAML.sublime-settings
):
{
// YAML mandates that tabs aren't used for indentation
"translate_tabs_to_spaces": true,
// In practice, editing YAML files with anything other than two space
// indentation is tedious, due to the "- " list prefix
"tab_size": 2,
}
因此,在 YAML 文件中,无论您的设置如何,制表符大小默认为 2,并且强制在制表符上使用空格。
因此,这里的要点是,如果更改上面的检测设置不起作用,请检查该设置是否仅在特定类型的文件中“不起作用”,如果是这样,您可以Preferences > Settings - Syntax Specific
在有该类型的文件打开以在那里强制执行您的设置。
推荐阅读
- python - 遍历目录中的txt文件,保存文件名
- javascript - 传单映射 AJAX - 未捕获的类型错误:无法读取属性“0”
- java - 无法向 Prometheus 公开 Flink 指标
- python - DBus 信号接收器从不被调用
- pyspark - 告诉 pyspark 已知的排序
- android - 致命异常 java.lang.NullPointerException: null 不能转换为非 null 类型 kotlin.String
- ios - 密码自动填充:我可以将 apple-app-site-association 文件放在别处而不是根目录或 .well-known
- ffmpeg - MXF 到使用 FFMPEG 的破折号转换
- azure - Azure 部署槽 - 使用 powershell 将其添加到虚拟网络
- ruby - 求 a 和 b 之间所有数字的总和:Ruby