【问题标题】:Eclipse multi-line indent uses tabs instead of spaces (pydev)Eclipse 多行缩进使用制表符代替空格(pydev)
【发布时间】:2012-02-19 00:08:14
【问题描述】:

当我在 Eclipse 中突出显示一个文本块并按 TAB 时,它会在每行的开头插入一个制表符。我希望它改为插入 4 个空格。

我需要对具有自定义扩展名的文件执行此操作:*.shpaml

我已经安装了 PyDev。

【问题讨论】:

  • 这是因为制表符是一个真正的缩进,一个单独的字符创建的唯一目的是缩进你的代码,你可以选择在你的编辑器中显示为无论您喜欢什么深度。

标签: eclipse whitespace pydev code-formatting


【解决方案1】:

我正在考虑使用 PyDev 编辑器打开 *.shpaml...

有两个相关的偏好:

在窗口 > 首选项 > PyDev > 编辑器中,您可以选择“在键入时将制表符替换为空格?”并在同一页面中“当文件包含标签时假设标签间距?”。

所以,可能您已经检查了并且您的 *.shpaml 中有一些选项卡,这使得 PyDev 可以使用选项卡...如果您取消选中“当文件包含选项卡时假定选项卡间距?”,它应该做你想做的。

【讨论】:

  • 选项“当文件包含制表符时假定制表符间距?”是什么让我绊倒了。在看到这个之前,我无法弄清楚为什么 tab to space 功能对我来说“坏了”。
【解决方案2】:

您应该可以在此处设置“空格而不是制表符”:

  Eclipse, Window, Preferences, General, Editors, Text Editors,
      Insert spaces for tabs=Y

【讨论】:

  • 这似乎只适用于单行缩进。仅设置了“为 tabs=Y 插入空格”设置,尝试缩进代码块时,我仍然会插入 TAB 字符。
  • 我也是。如果你选择一些文本然后点击 tab 键,你会得到标签(它不必是多行选择)
【解决方案3】:

使用设置: Eclipse,窗口,首选项,常规,编辑器,文本编辑器, 勾选“键入时用空格替换制表符” 这是旧 Eclipse 版本中的“为选项卡插入空格”)

新名称更清楚地表明此选项仅适用于键入而不是使用 tab 键缩进。

 Also untick setting 'Assume tab spacing when files contain tabs'
 Otherwise Eclipse will still fall vack to tab spacing when files contain tabs'. 

在其他编辑器中打开文件可能仍会导致选项卡。

从文件中删除所有现有选项卡也是明智之举。 打开每个文件,然后从查找替换功能 (Ctrl-F) 中勾选“正则表达式”,然后查找:\t 并替换为 4 个空格。

Or Source -> 'Convert tabs to space-tabs'

但是,仍然可以通过 Shift Left 和多行制表键插入制表符。 两个选项是使用上述方法之一将制表符转换回空格,或者不使用制表符或右移,右键单击所选块并选择“快速修复”选项之一,例如用if、while 或 try - 如果这在上下文中是合适的。

【讨论】:

  • 这是一个被低估的提示untick setting 'Assume tab spacing when files contain tabs' 谢谢!
【解决方案4】:

此外,在确保模块符合 PEP8 时,我遇到了同样的问题,并且必须对已经编写的代码执行此操作,在这种情况下,上述方法不起作用。

转到 Windows > 首选项?开发人员?文本编辑器单击显示空白字符。突出显示一个选项卡并单击 cntrl f。将制表符空白粘贴到查找框中,将四个空格粘贴到替换为框中。点击全部替换。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-11-22
    • 1970-01-01
    • 1970-01-01
    • 2013-07-05
    • 2023-03-30
    • 1970-01-01
    • 2015-07-30
    相关资源
    最近更新 更多