【问题标题】:Atom - Force Tab Width 2Atom - 强制标签宽度 2
【发布时间】:2017-02-07 14:38:02
【问题描述】:

我刚刚从 Sublime Text 切换到 Atom,以便完全开源。

我遇到了一些非常简单的问题:我希望 Atom 始终使用 (!) 并且在任何情况下 tab 宽度为 2 并用空格替换 tab。此设置在 gedit 或 Sublime Text 中非常简单,但无论我尝试什么:当我开始一个新文件时,选项卡大小为 2(好!)。当我使用现有文件时,选项卡大小有时为 4。我觉得这有点烦人。

屏幕截图中可以看到我在编辑器中的当前设置:

【问题讨论】:

    标签: atom-editor tab-size


    【解决方案1】:

    标签设置不止一个

    每个包(例如python-language)都有自己的选项卡设置。语言是使用全局默认值还是自己的默认值取决于创建包的人,但您通常可以覆盖它。

    在您的屏幕截图中,您已将“标签类型”设置为“软”。这将处理使用空格而不是制表符。您已保留默认选项卡宽度 2。这是您的全局设置。

    现在,如果你在“包”下搜索“python”,你会发现一个名为“language-python”的包。单击其设置按钮,您会发现许多特定于语法的设置。

    • Python 语法
    • Python 控制台语法
    • Python 回溯语法
    • 正则表达式 (Python) 语法

    每个语法都有自己的制表符长度设置。您可以在此处将它们显式设置为 2 以覆盖包的默认值。 (您可能最关心第一个,Python 语法。)

    Python 不同

    在 Python 的情况下,包被显式配置为默认为 4 个空格,可能是因为 Python 对空格非常固执,PEP 8 建议使用 4 个空格缩进。您可以在包的源代码中看到默认包设置:

    https://github.com/atom/language-python/blob/master/settings/language-python.cson

    'autoIndentOnPaste': false
    'softTabs': true
    'tabLength': 4
    

    这会覆盖全局默认值。这就是 Python Grammar 不支持全局制表符宽度的原因,大多数包都是这样做的。

    有时会有包覆盖

    此外,出于语法原因,某些软件包会覆盖您的设置。例如,language-make 将覆盖并使用真正的制表符而不是空格,因为这是 make 所要求的。

    在 Python 的情况下,有一个使用空格的覆盖。 language-python 设置页面为您提供了更改缩进级别的位置,但它不提供切换到使用制表符的方法。 (这可能是合理的,因为 Python 中的制表符和混合缩进是导致难以调试的语法错误的常见原因。)

    您可能需要重新加载

    最后,有时设置不会完全生效,直到您重新加载 Atom 窗口。您可以使用Window: Reload 命令来执行此操作。或使用键盘:

    • Mac:CtrlOptCmdL
    • Windows/Linux:CtrlAltR

    【讨论】:

    • 我尝试了所有这些,但它并没有改变制表符的空格数。
    • @soham.m17 您需要做的只是第一部分 - 进入 language-python 包设置并将 Python Grammar 的选项卡更改为 2。这个答案的其余部分只是进一步解释为什么 Python 不像大多数包那样尊重全局设置。
    • language-python 包中的默认值已经设置为 2。我点击了文本框并检查了。
    • @soham.m17 你重新加载了窗口吗?
    • @soham.m17 我不知道该告诉你什么 - 我在 Mac 上的 Atom 1.17 上测试了上述内容(将 Python 语法更改为 2),它确实有效。您可以尝试在discuss.atom.io 上发帖,也许可以调试。在 cmets 中,stackoverflow 不适合调试特定的用户情况。
    【解决方案2】:

    这对我有用。

    1. 禁用所有非默认包
    2. 打开~/.atom/config.cson,并附加它(与“*”元素相同的级别)

    ".python.source":
      editor:
        autoIndent: true
        tabLength: 2
    
    1. 重新启用所有软件包。

    我从其他人那里得到了帮助。不是我自己的发现。但是,为了保密,我不能引用出处。

    【讨论】:

    • 是否可以仅通过更改配置来强制重新缩进?
    【解决方案3】:

    根据 soham 的回答,我发现将 ~/.atom/config.cson(假设 osx)中的所有 tabLength: 字段设置为您想要的长度可以解决问题。

    【讨论】:

      猜你喜欢
      • 2023-04-03
      • 1970-01-01
      • 1970-01-01
      • 2020-03-10
      • 2011-02-18
      • 2015-04-17
      • 2012-03-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多