【Python】Python IDLE 设置清屏功能(清屏快捷键Ctrl+w,亲测通用)

        在初学 Python IDLE 时, 当编写代码行数较多时,起以为有clc/clear等那样的清屏命令,清除所输入过得命令,输入报错了,觉得自己想简单了,但是每次都关掉再重新打开 IDLE 有点麻烦,在CSDN找了找教程,清测好用,不同版本都适用,学会了自定义 IDLE 清屏快捷键。

1.新建ClearWindow.py文件,复制以下内容

"""
Clear Window Extension
Version: 0.2
provides "Clear Shell Window" under "Options"
with ability to undo.
Add these lines to config-extensions.def

[ClearWindow]
enable=1
enable_editor=0
enable_shell=1
[ClearWindow_cfgBindings]
clear-window=<Control-Key-w>
"""
class ClearWindow:

    menudefs = [
        ('options', [None,
               ('Clear Shell Window', '<<clear-window>>'),
       ]),]
		 
    def __init__(self, editwin):
        self.editwin = editwin
        self.text = self.editwin.text
        self.text.bind("<<clear-window>>", self.clear_window2)

        self.text.bind("<<undo>>", self.undo_event)  # add="+" doesn't work

    def undo_event(self, event):
        text = self.text
        
        text.mark_set("iomark2", "iomark")
        text.mark_set("insert2", "insert")
        self.editwin.undo.undo_event(event)

        # fix iomark and insert
        text.mark_set("iomark", "iomark2")
        text.mark_set("insert", "insert2")
        text.mark_unset("iomark2")
        text.mark_unset("insert2")
        

    def clear_window2(self, event): # Alternative method
        # work around the ModifiedUndoDelegator
        text = self.text
        text.undo_block_start()
        text.mark_set("iomark2", "iomark")
        text.mark_set("iomark", 1.0)
        text.delete(1.0, "iomark2 linestart")
        text.mark_set("iomark", "iomark2")
        text.mark_unset("iomark2")
        text.undo_block_stop()
        if self.text.compare('insert', '<', 'iomark'):
            self.text.mark_set('insert', 'end-1c')
        self.editwin.set_line_and_column()

    def clear_window(self, event):
        # remove undo delegator
        undo = self.editwin.undo
        self.editwin.per.removefilter(undo)

        # clear the window, but preserve current command
        self.text.delete(1.0, "iomark linestart")
        if self.text.compare('insert', '<', 'iomark'):
            self.text.mark_set('insert', 'end-1c')
        self.editwin.set_line_and_column()
 
        # restore undo delegator
        self.editwin.per.insertfilter(undo)

2.将该文件保存后放入指定路径

Python安装路径中的C:\Users\86134\AppData\Local\Programs\Python\Python310\Lib\idlelib里面(这是我的安装路径)

 3.打开该路径中的config-extensions.def文件(记事本打开)粘入以下内容

 

[ClearWindow]
enable=1
enable_editor=0
enable_shell=1
[ClearWindow_cfgBindings]
clear-window=<Control-Key-w>

 4.效果展示

Option栏会出现新的选项和快捷键

【注意】设置的快捷键是Ctrl+W,这个快捷键是可以任意修改的,修改的方法就是在上面配置代码的最后一行“ clear-window=”,将其中的 “w” 改为其他字符就行,但必须是小写字母。

原文作者:沧海随云
博文链接:https://blog.csdn.net/qq_39674985/article/details/88258746

 

物联沃分享整理
物联沃-IOTWORD物联网 » 【Python】Python IDLE 设置清屏功能(清屏快捷键Ctrl+w,亲测通用)

发表评论