【问题标题】:How to return my cursor automatically after an indentation in Python?如何在 Python 中缩进后自动返回光标?
【发布时间】:2016-08-08 06:51:32
【问题描述】:

任何代码编辑器都知道在python中缩进的位置,因为python使用:作为它的缩进标志,但是在完成一个代码块之后,我们希望我们的光标回到它的最后一个位置,就像这样:

def test_func():
    print("Here we have an auto indent")
    # but how to

# return, without pressing the backspace key

【问题讨论】:

  • 你不能,因为除了 denden 本身之外没有标记块的结尾。您可以在缩进的块中使用空行,因此只有空行并不意味着它是块的结尾。
  • 试试control + enter ...
  • 我注意到在 vim 中使用 pass 和 ycm 插件可以为我做缩进,我可以像在 Ruby 中使用 end 或在 C 中使用 } 一样使用 pass 吗?
  • 这个问题不是 IDE/编辑器特有的吗?在 PyCharm 2016.2 中,在任何函数的末尾写入 pass,然后按 enter 将光标移动到下一行的开头。
  • control + enter 在 Atom 中不起作用,您使用的是什么编辑器?

标签: python vim syntax editor indentation


【解决方案1】:

不,IDE 不可能在所有情况下都知道您的块何时结束。

有一些例外可以合理地猜测您想要结束当前缩进级别。例如。使用pass 将块“空”,Python 语法要求您使用块,或使用returnbreakcontinue,这些语句使Python 无法到达缩进的其余部分块。

但是,因为在 Python 中您必须取消缩进以表示块的结束,所以您的 IDE 无法在所有情况下都知道块何时结束。您可以轻松地跟随 print() 调用,其中包含几行空行,然后是同一缩进级别的另一行代码,它仍然是 test_func() 正文的一部分。

这完全取决于您的编辑器是否实现了自动缩进规则,但任何实现都会受到 Python 固有的相同限制。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-03-09
    • 2015-04-18
    • 1970-01-01
    • 2021-08-28
    • 2012-11-16
    • 2018-05-01
    • 1970-01-01
    相关资源
    最近更新 更多