使用Python IDLE时发现并没有清空当前窗口的快捷键,也没有像 clear 这样的命令,使用非常不便。
新建一个 ClearWindow.py脚本,源码如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
|
""" 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 [ClearWindow] enable=1 enable_editor=0 enable_shell=1 [ClearWindow_cfgBindings] 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) |
拷贝ClearWindow.py文件,放在Python安装目录Python XXX\Lib\idlelib下面(XXX为你的python版本,比如2.7)。
记事本打开Python XXX\Lib\idlelib目录下的config-extensions.def(IDLE扩展的配置文件), 为防止出错,你可以在打开它之前先copy一个备份 。
修改config-extensions.def ,在末尾添加如下内容,然后保存退出:
1
2
3
4
5
6
|
[ClearWindow] enable = 1 enable_editor = 0 enable_shell = 1 [ClearWindow_cfgBindings] clear - window = <Control - Key - ;> |
打开Python的IDLE,options选项中就可以看到增加了Clear shell window ctrl+;。
在IDLE输入代码,然后按Ctrl+;(是指Ctrl和;),发现刚输入代码可以被清除了。
快捷键Ctrl+;,可修改成其他键,将
1
|
clear - window = <Control - Key - ;> |
里的Control和;修改成其他键即可。
以上这篇Python IDLE清空窗口的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持服务器之家。
原文链接:https://blog.csdn.net/ww951993/article/details/74114063