【问题标题】:Are there keyboard shortcuts for duplicate current line, move line up / down in Python IDLE?是否有重复当前行的键盘快捷键,在 Python IDLE 中向上/向下移动行?
【发布时间】:2023-04-09 02:39:01
【问题描述】:

在 Sublime (Windows) 中,我们可以使用一些快捷方式,

Ctrl + Shift + D:重复行

Ctrl + Shift + UP:向上移动队列

Ctrl + Shift + Down:下移行

我想知道在 Python IDLE 中,这些任务是否有一些键盘快捷键?

或者我可以通过做一些事情来添加这些快捷方式吗?

任何帮助,谢谢。

【问题讨论】:

  • IDLE 是一个非常简单的程序,只是为了让不熟悉真实编辑器的初学者快速上手。如果您已经使用了真正的编辑器,可能会坚持使用它(也许调查一下它是否提供了更好的 Python 集成选项;许多现代编辑器都这样做)。
  • Options > Configure IDLE 中,您会在“键”选项卡上找到键绑定,尽管提供的键绑定操作非常基本。 IDLE 似乎没有为您提供的示例操作提供键绑定。

标签: python python-idle


【解决方案1】:

正如Alexander Chzhen 所指出的,idle 中没有这样的内置功能。

不过,您可以利用 idle(以及整个 python)是开源的这一事实,并根据您的需要编辑源代码。只需转到%localappdata%/Python3x/Lib/idlelib 并开始您的编码!以下是复制行快捷方式的示例:

  1. 使用任何编辑器打开config.py 并搜索keyBindings={。 将'<<duplicate-line>>': ['<Control-Shift-Key-D>'], 添加到字典中:

  1. 接下来转到editor.py 并搜索text.bind("<<untabify-region>>",。在该行下方添加text.bind("<<duplicate-line>>", fregion.duplicate_line_event)

  1. 最后一步。打开format.py。搜索class FormatRegion,然后在里面实现这个方法:
def duplicate_line_event(self, event=None):
    """
    Duplicate line.
    """
    head, tail, chars, lines = self.get_region()
    lines.pop(-1)
    lines *= 2
    lines.append('')
    self.set_region(head, tail, chars, lines)
    return "break"

最后(确保重新启动在添加代码之前打开的空闲窗口):)

【讨论】:

  • 哇,谢谢! ^-^ 那就是我要找的。重复行后如何取消所选状态?光标只是停留在新行的对应位置作为复制行。我尝试添加Ctrl + Shift + UP: Move line Up,但没有解决。我是 Python 的新手。你能告诉我如何添加另外两个键绑定:move line upmove line down
【解决方案2】:

复制一段文本的标准方法是选择它、复制它,然后将其粘贴一次或多次,无论何时何地。使用键或鼠标移动光标。要轻松选择完整的行,包括回车,请在Options 子菜单上打开line numbers。然后单击行号以选择一行或单击并拖动以选择多行。移动而不是复制,剪切而不是复制。

【讨论】:

    【解决方案3】:

    没有这样的IDLE hotkeys

    作为一种解决方法,您可能希望使用某种Shift+Home / Shift+End 进行行选择,并在其后使用常用的复制-剪切-粘贴热键。

    【讨论】:

    • 这个答案不清楚。解决方法不起作用
    • 要轻松选择行,请打开选项 => 显示行号,然后单击或单击并拖动侧边栏。
    猜你喜欢
    • 1970-01-01
    • 2018-03-25
    • 2017-04-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多