Python IDLE 代码高亮主题
使用方法:
打开C盘我的 C:\Documents and Settings\你的用户名.idlerc文件夹
里面会有一个 config-highlight.cfg 如果没有请自已创建一个
将下面的代码放到 config-highlight.cfg 里面,并重启IDLE
这下在IDLE的设置highlight项里面就有几个主题了
首先要找到名为config-highlight.cfg的文件,这个文件位于哪里呢?我列了一份可以找到它的路径清单
在Linux系列系统下路径为(~表示用户目录):
~/.idlerc/
在Windows XP下路径为:
C:\Documents and Settings<用户名>.idlerc
在Windows 7下路径为:
C:\Users<用户名>.idlerc
对于Windows可以直接打开开始运行或者在地址栏输入下面的路径确认即可:
%USERPROFILE%.idlerc\找到这个名叫config-highlight.cfg文件后接下来就需要编辑它了,怎么?找不到?没关系,我们可以新创建一个config-highlight.cfg。
当然,说到编辑,命令控们也可以尝试下面的命令,在Linux系统下:
在Linux下
vi ~/.idlerc/config-highlight.cfg
在Windows系统下:
notepad %USERPROFILE%.idlerc\config-highlight.cfg好了,现在我们应该已经打开config-highlight.cfg这个文件并做好编辑的准备了,比如说我可以通过修改这个文件为下面内容来实现两个名为Obsidian和tango的代码高亮主题:
[Obsidian]
definition-foreground = #678CB1
error-foreground = #FF0000
string-background = #293134
keyword-foreground = #93C763
normal-foreground = #E0E2E4
comment-background = #293134
hit-foreground = #E0E2E4
builtin-background = #293134
stdout-foreground = #678CB1
cursor-foreground = #E0E2E4
break-background = #293134
comment-foreground = #66747B
hilite-background = #2F393C
hilite-foreground = #E0E2E4
definition-background = #293134
stderr-background = #293134
hit-background = #000000
console-foreground = #E0E2E4
normal-background = #293134
builtin-foreground = #E0E2E4
stdout-background = #293134
console-background = #293134
stderr-foreground = #FB0000
keyword-background = #293134
string-foreground = #EC7600
break-foreground = #E0E2E4
error-background = #293134
[tango]
definition-foreground = #fce94f
error-foreground = #fa8072
string-background = #2e3436
keyword-foreground = #8cc4ff
normal-foreground = #ffffff
comment-background = #2e3436
hit-foreground = #ffffff
break-foreground = #000000
builtin-background = #2e3436
stdout-foreground = #eeeeec
cursor-foreground = #fce94f
hit-background = #2e3436
comment-foreground = #73d216
hilite-background = #edd400
definition-background = #2e3436
stderr-background = #2e3436
break-background = #2e3436
console-foreground = #87ceeb
normal-background = #2e3436
builtin-foreground = #ad7fa8
stdout-background = #2e3436
console-background = #2e3436
stderr-foreground = #ff3e40
keyword-background = #2e3436
string-foreground = #e9b96e
hilite-foreground = #2e3436
error-background = #2e3436
[blackboard]
keyword-background = #0C1021
definition-foreground = #D63A1B
error-foreground = #ff0000
string-background = #0C1021
keyword-foreground = #FBDE2D
hilite-foreground = #000000
comment-background = #0C1021
hit-foreground = #ffffff
builtin-background = #0C1021
stdout-foreground = #eeeeee
cursor-foreground = #ffcc00
break-background = #ffff55
comment-foreground = #505050
hilite-background = gray
definition-background = #0C1021
stderr-background = #0C1021
hit-background = #0C1021
console-foreground = #87ceeb
normal-background = #0C1021
builtin-foreground = #fd9902
stdout-background = #0C1021
console-background = #0C1021
stderr-foreground = #ff3e40
normal-foreground = #F8F8F8
string-foreground = #61CE3C
break-foreground = black
error-background = #000000
[twilight]
keyword-background = #141414
definition-foreground = #c86428
error-foreground = #ff0000
string-background = #141414
keyword-foreground = #c2964b
hilite-foreground = #00ffff
comment-background = #141414
hit-foreground = #ffffff
builtin-background = #141414
stdout-foreground = #eeeeee
cursor-foreground = #ffcc00
break-background = #ffff55
comment-foreground = #524d53
hilite-background = #0000a0
definition-background = #141414
stderr-background = #141414
hit-background = #141414
console-foreground = #87ceeb
normal-background = #141414
builtin-foreground = #ce3e24
stdout-background = #141414
console-background = #141414
stderr-foreground = #ff3e40
normal-foreground = #FFFFFF
string-foreground = #61CE3C
break-foreground = black
error-background = #000000
[desert]
keyword-background = #333333
definition-foreground = #98fb98
error-foreground = #ff0000
string-background = #333333
keyword-foreground = #cc6600
hilite-foreground = #000000
comment-background = #333333
hit-foreground = #ffffff
builtin-background = #333333
stdout-foreground = #eeeeee
cursor-foreground = #ffcc00
break-background = #ffff55
comment-foreground = #87ceeb
hilite-background = gray
definition-background = #333333
stderr-background = #333333
hit-background = #333333
console-foreground = #87ceeb
normal-background = #333333
builtin-foreground = #519e51
stdout-background = #333333
console-background = #333333
stderr-foreground = #ff3e40
normal-foreground = #f0e68c
string-foreground = #ffa0a0
break-foreground = black
error-background = #000000
[cobalt]
keyword-background = #001B33
definition-foreground = #FFDD11
error-foreground = #ff0000
string-background = #001B33
keyword-foreground = #FF7222
hilite-foreground = #00ffff
comment-background = #001B33
hit-foreground = #ffffff
builtin-background = #001B33
stdout-foreground = #eeeeee
cursor-foreground = #ffcc00
break-background = #ffff55
comment-foreground = #007699
hilite-background = #0000a0
definition-background = #001B33
stderr-background = #001B33
hit-background = #001B33
console-foreground = #87ceeb
normal-background = #001B33
builtin-foreground = #D40E36
stdout-background = #001B33
console-background = #001B33
stderr-foreground = #ff3e40
normal-foreground = #F8F8F8
string-foreground = #61CE3C
break-foreground = black
error-background = #000000
我们修改了config-highlight.cfg这个文件并不意味着事情结束了,我们还需要在Python IDLE中选择我们的主题,这时如果已经打开Python IDLE,请保存必要文件并重新开启IDLE,开启后依次选择菜单上Options – Configure IDLE…
选择Highlighting选项卡,然后Select选择a Custom Theme,如下图所示,选择刚才配置的两个主题之一,我这里选择tango。
完成配置后点击Apply或者OK,看看效果吧,有童鞋要问字体怎么配置?这个容易,在Highlighting选项卡旁边有个Fonts/Tabs选项卡,可以用来配置字体和缩进宽度的:
好了,做完这些一个崭新的界面就应该呈现了,如果看不到效果请重启Python IDLE。
Python IDLE配置清屏快捷键(Ctrl+L)
- 在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 [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)
- Python\Lib\idlelib下修改config-extensions.def ,在末尾添加如下内容:
[ClearWindow]
enable=1
enable_editor=0
enable_shell=1
[ClearWindow_cfgBindings]
clear-window=<Control-Key-l>
- 重新Python的IDLE,在options选项中就可以看到增加了Clear shell Window Ctrl+L,即清屏的快捷键为:Ctrl+L