Python IDLE 代碼高亮主題


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)

  1. 在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)
  1. Python\Lib\idlelib下修改config-extensions.def ,在末尾添加如下內容:
[ClearWindow]
enable=1
enable_editor=0
enable_shell=1
[ClearWindow_cfgBindings]
clear-window=<Control-Key-l>
  1. 重新Python的IDLE,在options選項中就可以看到增加了Clear shell Window Ctrl+L,即清屏的快捷鍵為:Ctrl+L


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM