【问题标题】:Python command line: editing mistake on previous line?Python命令行:上一行的编辑错误?
【发布时间】:2011-10-21 00:54:30
【问题描述】:

通过命令行使用 python 时,如果我在嵌套语句的前一行看到错误,是否有任何方法可以删除或编辑已经输入的该行?

例如:

>>> file = open("file1", "w")
>>> for line in file:
...     parts = line.split('|')   <-- example, I meant to type '\' instead
...     print parts[0:1]
...     print ";"
...     print parts[1:]

所以与其重新输入整个内容来修复一个字符,我可以回过头来在事后编辑一些东西吗? 我知道我可以在 vim 或其他东西中对其进行编码,并拥有一个我可以做任何我想做的事情的持久副本,但我希望命令行有一个方便的花花公子技巧。

-- 谢谢!

【问题讨论】:

  • 默认命令行有点受限。您应该查看IPython。我有更好的体验。
  • 当然,如果必须,你可以重新定义parts,但我知道这不是你要找的。​​span>

标签: python linux command-line command


【解决方案1】:

你不能在原始的python解释器中做这样的事情,但是,如果你使用IPython的最新版本,它提供了一个lightweight GUI(看起来像一个简单的shell,但实际上是一个GUI)它具有多行编辑、语法高亮和许多其他功能。要使用IPython GUI,请使用ipython qtconsole 命令运行它。

【讨论】:

    【解决方案2】:

    也许吧。 Python Tutorial 说:

    也许检查是否支持命令行编辑的最快方法是在您获得的第一个 Python 提示符下键入 Control-P。如果它发出哔哔声,您有命令行编辑;有关密钥的介绍,请参阅 Appendix Interactive Input 编辑和历史替换。如果没有任何反应,或者 ^P 被回显,则命令行编辑不可用;您只能使用退格从当前行删除字符。

    【讨论】:

    • 这只是允许你拉出上一行,它绝不允许你从一个块中更改一行,然后一次执行该块,这是 OP 想要的。
    【解决方案3】:

    据我所知,这些年来我一直在编写 Python 代码。这就是文本编辑器的作用 =)

    如果您是 Emacs 用户,您可以设置您的环境,将窗口拆分为代码缓冲区和 Python shell 缓冲区,然后执行整个缓冲区以查看更改。

    【讨论】:

      【解决方案4】:

      除了@MatToufoutu 的建议,您还可以看看DreamPie,虽然它只是一个没有IPython 其他扩展的shell 的GUI。

      【讨论】:

        【解决方案5】:

        现在代替 ipython 使用

        jupyter console
        

        在 cmd 提示符下

        【讨论】:

          猜你喜欢
          • 2023-04-08
          • 1970-01-01
          • 2016-08-31
          • 2013-03-20
          • 2010-11-17
          • 2011-06-17
          • 1970-01-01
          • 2014-10-09
          • 1970-01-01
          相关资源
          最近更新 更多