原子 - 力标签宽度2

时间:2017-02-07 14:38:03

标签: atom-editor tab-size

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

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

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

enter image description here

3 个答案:

答案 0 :(得分:6)

有多个标签设置

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

在屏幕截图中,您已将“标签类型”设置为“软”。这将照顾使用空格而不是标签。您已将默认标签宽度设置为2.这是您的全局设置。

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

  • Python Grammar
  • Python控制台语法
  • Python Traceback Grammar
  • 正则表达式(Python)语法

这些语法中的每个都有自己的Tab Length设置。您可以在此处将它们显式设置为2以覆盖包的默认值。 (你可能最关心的是第一个,Python Grammar。)

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: Ctrl 选择 Cmd L
  • Windows / Linux: Ctrl Alt R

答案 1 :(得分:1)

这对我有用。

  1. 禁用所有非默认包
  2. 打开~/.atom/config.cson,并附加此(与“*”元素相同的级别)
  3. ".python.source":
      editor:
        autoIndent: true
        tabLength: 2
    
    1. 重新启用所有包。
    2. 我得到了别人的帮助。不是我自己的发现。但是,为了保密,我不能引用来源。

答案 2 :(得分:0)

基于soham的答案,我发现将〜/ .atom / config.cson(假设osx)中的所有tabLength:字段设置为所需的长度即可解决问题。