在eclipse中缩进python文件(使用pydev)



我是eclipse的新手。我想缩进代码的所有行,并通过按快捷键或类似的东西格式化打开的文件…我知道CTRL+SHIFT+F(因为它实际上在pydev中不起作用!!)我找了好几个小时都没找到。有办法在eclipse中做到这一点吗?有点像visual studio中的CTRL+K,D,它会自动格式化和缩进所有源代码行?

如果你想将缩进从2个空格改为4个空格(例如),使用"Source->Convert space to tab" + 2个空格,然后使用"Source->Convert tab to空格" + 4个空格。

…不要认为这个问题有意义。缩进是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

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)

第一个命令将生成一个字符串列表,然后将合并的结果打印到控制台1次。第二个仍然会生成一个字符串列表,但是会打印每次循环的累积连接结果——100个print语句。这两个都是100%的语法正确。它们没有问题。它们中的任何一个都可能是开发者想要的。IDE不能"知道"哪个是正确的。它很容易错误地将第一个版本更改为第二个版本。因为该语言使用缩进作为语法,所以没有办法配置IDE来为您执行这种格式化。

虽然自动缩进不是PyDev的特性,但由于语言设计,您应该能够使用简单的选项卡进行缩进。只要选择你想缩进的行,然后按Tab键。如果你想取消缩进行,你必须按Shift+Tab。这一切。

这就容易多了:

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

缩进在语法上是重要的;考虑

之间的区别
for i in range(5):
    print i
print "done"

for i in range(5):
    print i
    print "done"

然而,对于IDE来说,能够规范现有的缩进(例如,在每一级应用一致数量的空格/制表符)当然是有意义的。

目前PyDev不支持这样的特性;Pydev作者Fabioz曾经表示有兴趣在将来添加它,并指出现在您可以使用提供的reindent.py脚本来完成它。

显然这仅适用于Pydev,但我已经计算出您可以获得非常有用的函数"右移"one_answers"左移"(默认映射为CTRL + ALT +)。和CTRL + ALT +,)通过将它们的键绑定从"Pydev View"更改为"Pydev Editor Scope"来变得有用。这有效地缩进/缩进你所选择的所有行,只要你喜欢

我认为您正在寻找的是Eclipse/PyDev中的某种快捷方式,以便可以一次识别所有选定的代码。就像你在一段代码上面创建一个新的"if"或"for"循环,然后需要重新排列标识一样。IDLE编辑器的快捷键"Ctrl +]"就是这样工作的。据我所知,Eclipse中的PyDev似乎没有这样的东西。

也可以选择线条,右键单击,然后右移/左移

似乎PyDev中仍然无法使用源格式。

对于一个例子,我发现这个web应用程序做得很好。

http://pythoniter.appspot.com/

就像前面说的,python需要缩进你的代码,所以对于其他的东西,比如:作为方法参数传递的变量之间的空格,等等,可以使用ctrl+shift+f来格式化代码。这是用于java的,我尝试了pydev并做了一些格式化。

最新更新