雷梅黛丝 发表于 2020-5-13 23:06:36

关于python中shell清屏快捷键的设置

求助,我的这个文件 (config-extensions.def) 和动图里面的那个不一样,然后按着他那个步骤来的,结果没反应

https://fishc.com.cn/thread-45441-1-1.html

这个链接是我看的教程,

有会的大佬可以教我一下不


ps: 现在等级低,发不了图,为了刷点积分还被管理员搞了一波。

难受,下次不混水贴了

zltzlt 发表于 2020-5-14 07:56:57

可以将图片上传到 图床 再把链接发到论坛上。

Twilight6 发表于 2020-5-15 11:07:01

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-5-15 14:20:39

谢了,已经解决了
ClearWindow.py这个文件没有弄,原来的那个帖子下面只是提到了这个文件,没给代码

Twilight6 发表于 2020-5-15 14:25:57

雷梅黛丝 发表于 2020-5-15 14:20
谢了,已经解决了
ClearWindow.py这个文件没有弄,原来的那个帖子下面只是提到了这个文件,没给代码

噢噢 好的,以后建议去python交流区板块问,会有更多人解答的~~

雷梅黛丝 发表于 2020-5-15 14:50:56

Twilight6 发表于 2020-5-15 14:25
噢噢 好的,以后建议去python交流区板块问,会有更多人解答的~~

我刚来,没权限{:5_100:}

Twilight6 发表于 2020-5-15 15:24:48

雷梅黛丝 发表于 2020-5-15 14:50
我刚来,没权限

交流板块,不是课后作业的板块

https://fishc.com.cn/forum-173-1.html

雷梅黛丝 发表于 2020-5-16 06:27:43

Twilight6 发表于 2020-5-15 15:24
交流板块,不是课后作业的板块

https://fishc.com.cn/forum-173-1.html

好的,谢了啊

Twilight6 发表于 2020-5-16 08:17:59

雷梅黛丝 发表于 2020-5-16 06:27
好的,谢了啊

没事 嘿嘿~
页: [1]
查看完整版本: 关于python中shell清屏快捷键的设置