小叹python日记(二)清屏命令

小叹今天刚刚开始学习python,遇到了IDLE上面不会清屏的问题,之前学习liunx时有Ctrl+L清屏,现在我们也来实现Ctrl+L

首先,我们要准备一个名为“ClearWindow.py”的文件

其代码如下:

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_window)

    def clear_window2(self, event): # Alternative method

        # work around the ModifiedUndoDelegator

        text = self.text

        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")

        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)

可以将此代码拷贝到ClearWindow.py中保存,然后把ClearWindow.py拷贝到python的安装目录下的Lib/idlelib中,如图:

小叹python日记(二)清屏命令

在此目录下找到“config-extensions.def”文件,右键选择“编辑”

添加以下内容到末尾:

[ClearWindow]

enable=1

enable_editor=0

enable_shell=1

[ClearWindow_cfgBindings]

clear-window=<Control-Key-l>

之后打开IDLE后就可以Ctrl+L进行清屏