【问题标题】:How to skip over closing braces / brackets / parentheses in PyCharm?如何跳过 PyCharm 中的右大括号/方括号/括号?
【发布时间】:2011-09-26 13:15:59
【问题描述】:

除非我使用自动闭合大括号等(我不喜欢),否则我无法让自动缩进正常工作,而且我看不到允许跳过/退出的选项。

Eclipse 对此有一个配置选项,默认情况下 Visual Studio 不会自动关闭所有内容,而是在手动输入右大括号后格式化代码块(我更喜欢这样做)。

除了一直到“结束”键之外,肯定还有其他事情吗?

编辑/更新:

由于我认为在没有明确答案的情况下留下问题是一种不好的形式,因此最近有 PyCharm 经验的人(我已经有一段时间没有使用它了)是否会在以下解决方案中推荐最佳解决方案?也许还有一个更新的配置选项或尚未列出的简单解决方案?

【问题讨论】:

    标签: python pycharm


    【解决方案1】:

    按 Ctrl-Shift-Enter 关闭当前行缺少的大括号(如果有),添加缺少的冒号(如果缺少)并将插入符号放入下一行的正确缩进位置。

    【讨论】:

    • 我希望在选择自动大括号关闭选项时出现相同的自动缩进功能。如果没有这个选项,一切都会变得手动且相对耗时。
    • 确实,PyCharm 没有在键入右大括号时触发自动格式化的选项。您能否更详细地描述一个对 Python 代码有用的编辑场景?
    • 我用了几年的emacs,但是想改用pyCharm。我认为Ctrl-Shift-Enter 很难。如果你可以用十根手指输入 emacs 版本(ctrl-e : enter)会容易得多。我认为每个新用户都会遇到这个 stackoverlow 问题。
    • 所以通常你自己输入也一样容易,除非行尾有一长串括号。这似乎设计得很奇怪,更像是一个提醒系统而不是一个自动完成的结束系统。
    【解决方案2】:

    Shift + Enter 将跳过完成并将您放到下一行。

    Ctrl + ] 将跳转到当前元素的末尾。

    这似乎在大多数情况下都可以跳过过去的自动完成。我发现它是最通用的选项。

    Ctrl + [ 将跳转到您所在的任何代码块的开头。

    如前所述,Ctrl + Shift + Enter 将添加您可能需要的任何额外的自动完成并放到新行上。

    【讨论】:

      【解决方案3】:

      一所大学告诉我一个解决方案:

      首先你输入这个:

      def test_foo(
      

      只要你输入(,PyCharm 就会插入self)

      当前状态:^表示光标位置:

      def test_foo(self^):
      

      只需输入): 并点击ENTER,您就在下一行。

      由于我用十根手指打字,Ctrl-Shift-Enter 在这种常见的编辑操作中不适合我。

      【讨论】:

      • 所以基本上,自己输入更容易,而不是让它为你完成。那么,这似乎设计得很糟糕。 :)
      • @neuronet 一个月前我从 emacs 切换到了 pyCharm。我永远不想回去。你试过pyCharm吗?我不会说它设计不佳。
      • 我指的是这一功能,您只需手动输入内容即可。总的来说,我同意 PyCharm 很好(我现在使用 Spyder,但正在考虑切换)。
      【解决方案4】:

      你为什么不喜欢自动关闭的括号?他们不会打扰任何人,请参阅:
      ^ 指定光标位置

      method([a, {b: c^}])
      如果插入新的括号,就好像没有括号一样!

      插入“}”:
      method([a, {b: c}^])
      现在插入一个']':
      method([a, {b: c}]^)
      现在插入一个 ')':
      method([a, {b: c}])^

      瞧!从用户的角度来看,如果您盲目输入,您现在无法判断是否插入了自动右括号。

      或者简单地说:保持右括号打开。 IntelliJ 在很多我们想要直观地拥有的小东西上做得很好。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-09-15
        • 1970-01-01
        • 2012-04-23
        • 2017-08-28
        • 1970-01-01
        • 1970-01-01
        • 2021-01-11
        • 1970-01-01
        相关资源
        最近更新 更多