在eclipse中缩进python文件(带pydev)

Sai*_*had 15 python eclipse code-formatting indentation pydev

我是日食的新手.我想缩进我的代码的所有行并通过按快捷键或类似的东西来格式化打开的文件...我知道CTRL + SHIFT + F(因为它实际上在pydev中不起作用!!)我已经一直在寻找没有成功的时间.在eclipse中有没有办法做到这一点.有点像视觉工作室中的CTRL + K,D,它自动格式化和缩进所有源代码行?

Dem*_*myn 22

如果要将2个空格更改为4个空格缩进(例如),请使用"Source-> Convert space to tab"2个空格,然后使用4个空格"Soruce-> Convert tab to space".


g.d*_*d.c 19

我......不要认为这个问题有道理.缩进是Python中的语法.让IDE自动缩进代码是没有意义的.如果它没有正确缩进,则它不起作用,并且IDE无法知道缩进块的开始和结束位置.举个例子:

# Valid Code
for i in range(10):
  b = i

for j in range(b):
  c = j

# Also Valid Code.
for i in range(10):
  b = i

  for j in range(b):
    c = j
Run Code Online (Sandbox Code Playgroud)

IDE无法知道哪些是正确的版本,或者您的意图是什么.如果您要编写Python代码,那么您将不得不学习如何管理缩进.没有办法避免它,并期望IDE神奇地清理它并仍然从中获得所需的结果几乎是不可能的.

进一步举例:

# Valid Code.
outputData = []

for i in range(100):
  outputData.append(str(i))

print ''.join(outputData)

# Again, also valid code, wildly different behavior.
outputData = []

for i in range(100):
  outputData.append(str(i))

  print ''.join(outputData)
Run Code Online (Sandbox Code Playgroud)

第一个将生成一个字符串列表,然后将连接结果打印到控制台1次.第二个仍然会产生一个字符串列表,但是为循环的每次迭代打印累积连接结果--100个打印语句.这两者在语法上都是100%正确的.他们没问题.它们中的任何一个都可能是开发人员想要的.IDE无法"知道"哪个是正确的.它很容易错误地将第一个版本更改为第二个版本.因为语言使用缩进作为语法,所以无法配置IDE来为您执行此类格式化.

  • 这是对的.与C++或Java不同,Python依赖于缩进的含义.这意味着Python不能"自动缩进",而其他人则可以. (2认同)

wag*_*eer 16

虽然自动缩进不是PyDev的一个功能,因为语言设计你应该可以使用简单的选项卡缩进.只需选择要缩进的行,然后按Tab键.如果你想要取消行,你必须按Shift + Tab.就这样.


fiv*_*vef 13

它更容易:

  1. 选择多行
  2. 按Tab键缩进(向右移动),按Shift + Tab键以取消所有选定的行(向左移动).