编程小白艾雪儿 发表于 2020-7-9 17:53:26

清屏

这样还是用不了ctrl+l,跟版本有关系?( 3.8版本的

Twilight6 发表于 2020-7-9 17:54:07

python目录下的 lib\idlelib 的文件夹下 新建文件名为 ClearWindow.py 保存


"""

Clear Window Extension
Version: 0.2

Author: Roger D. Serwy
      roger.serwy@gmail.com

Date: 2009-06-14

It provides "Clear Shell Window" under "Options"
with ability to undo.

Add these lines to config-extensions.def


enable=1
enable_editor=0
enable_shell=1

clear-window=<Control-Key-l>


"""


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)
python目录下的 lib\idlelib文件夹下,用记事本打开文件config-extensions.def,在文件最后添加一下代码:

enable=1
enable_editor=0
enable_shell=1

clear-window=<Control-Key-l>



编程小白艾雪儿 发表于 2020-7-9 18:00:24

Twilight6 发表于 2020-7-9 17:54
python目录下的 lib\idlelib 的文件夹下 新建文件名为 ClearWindow.py 保存




非常感谢!但不知道什么原因还是用不了

Twilight6 发表于 2020-7-9 18:04:51

编程小白艾雪儿 发表于 2020-7-9 18:00
非常感谢!但不知道什么原因还是用不了

不会呀,你重新按流程来一遍试试看,我刚刚测试可用了

编程小白艾雪儿 发表于 2020-7-9 18:22:07

Twilight6 发表于 2020-7-9 18:04
不会呀,你重新按流程来一遍试试看,我刚刚测试可用了

感谢!解决啦!

编程小白艾雪儿 发表于 2020-7-9 18:24:09

按步骤来就可以,如果关闭软件没反应可以重启电脑试试。
我猜可能是我的垃圾电脑反应有点慢hhh,重启了一下可以用了!
{:7_125:}

小甲鱼的铁粉 发表于 2020-7-9 19:32:31

{:10_256:}
页: [1]
查看完整版本: 清屏