PyDev粘贴到控制台用空行

时间:2013-05-08 23:39:36

标签: python eclipse pydev indentation

我在Eclipse中使用PyDev来编写Python代码。我大量使用交互式shell - 这是我使用Python的主要原因。但是当我尝试将带有空行的代码粘贴到编辑器中时(通过Ctrl-Alt-Enter键绑定或直接剪切和粘贴),我遇到了“意外缩进”错误。打破的一个例子:

def test_function():
    x = 1 + 2
    y = x - 1

    if x > y:
        print('x > y')

    return(y)

这会产生“IndentationError:意外缩进”,即使这段代码基于PEP 8是完全合法的。当然,这个原因是交互式shell自动缩进内容,它使用一个空行来表示信号代码块的结尾。基于一些搜索,我认为我需要的是像IPython中的魔术%粘贴或者关闭自动缩进的能力。

有没有办法在PyDev中粘贴空行代码块而不会导致缩进错误? (两种可能的解决方法是注释空行或在前一行的末尾使用'\'。我正在寻找能直接解决问题的东西。)

1 个答案:

答案 0 :(得分:2)

不,没有办法实现这一目标。交互式shell中的空行具有“现在开始运行它!”的特殊含义。它与任何自动定位器无关。

您可以在每个空行的开头放置#,然后忽略它:

def test_function():
  x = 1 + 2
  y = x - 1
#
  if x > y:
    print('x > y')
#
  return(y)

但当然,这很难看。