在Eclipse中用Pydev缩进Python文件
我刚开始学用Eclipse这个软件,想要把我代码里的所有行都缩进一下,还想通过按个快捷键来格式化打开的文件……我知道可以用CTRL+SHIFT+F这个组合键,但在pydev里好像没用!!我找了好几个小时也没找到解决办法。请问在Eclipse里有没有什么方法可以做到这一点?就像在Visual Studio里按CTRL+K,D可以自动格式化和缩进所有代码行一样?
10 个回答
虽然PyDev这个工具不支持自动缩进,因为这跟语言的设计有关,但你还是可以用简单的Tab键来进行缩进。只要选中你想缩进的那几行,然后按下Tab键就可以了。如果你想要取消缩进,就按Shift+Tab键。就这么简单。
如果你想把代码的缩进从2个空格改成4个空格,比如说,可以先用“源代码->把空格转换成制表符”这个选项,把2个空格转换成制表符,然后再用“源代码->把制表符转换成空格”这个选项,把制表符转换成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)
第一个代码会生成一个字符串列表,然后只打印一次合并后的结果。第二个代码同样会生成一个字符串列表,但会在循环的每次迭代中打印出累积的合并结果——也就是会打印100次。两者在语法上都是完全正确的,没什么问题。开发者可能想要的就是其中的任何一个。IDE无法“知道”哪个是正确的。它很容易就会把第一个版本错误地改成第二个版本。因为Python使用缩进作为语法,所以没有办法让IDE为你自动处理这种格式化。