【问题标题】:Are there any keyboard shortcuts for formatting in Python?在 Python 中是否有任何用于格式化的键盘快捷键?
【发布时间】:2010-09-29 02:47:22
【问题描述】:

在 Matlab 中编写代码后,我们可以使用ctrl+A+ctrl+Ictrl+A+ctrl+J 来格式化我们的代码(cmets、循环对齐等)。 Python 中有类似的或有用的键盘快捷键吗?

另外,就像我们可以在 Matlab 中使用向上箭头来复制我们之前的命令窗口历史记录一样,是否可以在 Python 中或使用一些键盘快捷键来做到这一点?

谢谢!

【问题讨论】:

  • 对于那些争论哪个 IDE 更适合 python 的人,你最好看看 this post,因为他们可能会在那里讨论键盘截图。
  • pydev with eclipse 是 Python 开发的绝佳 IDE,您只需要正确配置它......并且也使用 iPython

标签: python matlab formatting keyboard-shortcuts


【解决方案1】:

Python 是一种编程语言,而不是集成开发环境 (IDE),因此它没有“键盘快捷键”等。每个给定的开发环境可以提供不同的设施等。您似乎将 GNU Readline(通常在许多 Python 可执行文件捆绑的简单文本模式解释器环境中使用)视为“Python 的一部分”——但这是一种误解; readline 是一个完美的通用库,用于在命令行环境中进行交互式输入,Python 只是使用它的众多程序之一。另一个通常与 Python 捆绑在一起的环境是IDLE,这是一个 GUI 环境,当然,编辑工具完全不同。有许多第三方环境,例如“Wing IDE”,每个环境都提供了一组截然不同的编辑功能和设施。

总结一下:您的问题对 Python 本身的意义与对(例如)C、Java 或任何其他编程语言的意义相同。不要让捆绑的 IDE 附带的(通常是专有的)编程语言在这个问题上让您感到困惑!

【讨论】:

  • 简单的解决方案是使用 Python 文件夹中应具有的捆绑的“IDLE GUI”。然后,如果您正在编写脚本,F5 将运行它。
  • @Harpreet:我相当肯定,真正集成到 Python 中的唯一程序是 IDLE。如果您在 Windows 上(这是我怀疑的),如果您想查看代码,请右键单击并选择“使用 IDLE 编辑”。 Notepad++ 非常适合 C 和其他语言,但对于 Python,IDLE 是最好的(如果不是,它不会包含在 Python 中)。
  • 我相信“我如何告诉我的操作系统设置一个任意(Python 编码的)程序以在双击图标时运行”这个问题是操作系统特定的和非编程的问题——解决方案在(例如)ubuntu、kubuntu、windows、macs 和 c 之间会有所不同,但无论您是在开发 Python 程序还是只是它的用户,不会完全不同.所以我建议在 superuser.com 上询问,明确指定感兴趣的确切平台集。
  • 您可以从 Notepad++ 运行 Python 程序。转到“运行”菜单并选择“运行”(或直接按 F5)。如果您使用的是 Windows(听起来很像),那么您输入 'C:\Python26\python.exe "$(FULL_CURRENT_PATH)"'。这适用于 Python 2.6,您可以将其更改为其他版本。您确实需要在第二部分周围加上双引号。然后单击保存,为此输入一个名称(如运行 Python)并选择一个组合键。我用F6。按 OK,您现在可以通过按 F6 或从 Run 菜单中选择“Run Python”来运行当前打开的 Python 脚本。
【解决方案2】:

如果您使用 Python IDLE(在 Windows 上随 Python 提供,在 Linux 和 Unix 版本上随时可用),大部分格式化工作都会为您完成。例如,IDLE 在: 之后自动缩进循环和任何其他代码块。这比在 gedit、emacs、vim 或记事本等标准文本编辑器中编写 Python 脚本要好得多,尤其是因为您只需按 F5 即可运行脚本。

至于前面的命令,Python shell 的最大缺点是您不能按向上箭头来获取最后一个命令。但是,如果您使用非 GUI shell(在 Windows 命令提示符或 Unix 终端中,命令为python),您可以使用 shell 的命令调用来获取最后一个命令。

【讨论】:

  • 在 IDLE 中,您可以使用 alt-p 和 alt-n 调用之前的命令。
【解决方案3】:

如果你使用emacs,那么

  1. 您可以在一行的任意位置按 tab,它会相对于前一行正确缩进该行(假设当前块正在继续)。

  2. 您可以标记文本选择并按 C-c C-c > 移动块左右文本。

这是我实际经常使用的两个。我确信任何其他编辑器可以做的任何事情,emacs 也可以做;)

总体而言,格式化 python 代码对于程序来说是困难的,因为缩进会极大地影响语义。

考虑

for i, item in enumerate(lst):
    if i % 2:
        sum += i * int(item)
    return sum

for i, item in enumerate(lst):
    if i % 2:
        sum += i * int(item)
return sum

你真的希望你的编辑决定你指的是哪一个吗?

【讨论】:

    猜你喜欢
    • 2013-03-16
    • 2012-12-22
    • 2011-02-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多