PyCharm 自带的 Monokai 主题看不顺眼,如何用 Python 模仿 Sublime 主题进行自定义修改?

https://github.com/simoncos/pycharm-sublime-monokai

欢迎吐槽。(相当无聊)
PyCharm 自带的 Monokai 主题看不顺眼,如何用 Python 模仿 Sublime 主题进行自定义修改?

28 回复

哈哈哈,可以的,不过 sublime 原生主题配色我也不是很喜欢,更喜欢 Boxy Ocean。


PyCharm的主题定制确实不如Sublime直观,但通过Python操作配置文件可以实现深度定制。核心思路是修改colors.scheme.xml文件,这是PyCharm存储颜色方案的地方。

首先找到你的主题文件位置(macOS示例):

import os
import xml.etree.ElementTree as ET
from pathlib import Path

# PyCharm主题文件路径
theme_path = Path.home() / "Library/Application Support/JetBrains/PyCharm2023.1/colors"
theme_file = theme_path / "Monokai.icls"  # 备份原文件后修改副本

然后解析并修改XML结构,模仿Sublime的配色逻辑:

def modify_theme_to_sublime_style(input_file, output_file):
    tree = ET.parse(input_file)
    root = tree.getroot()
    
    # Sublime风格的颜色映射(示例值)
    sublime_colors = {
        "CARET_COLOR": "E6DB74",
        "SELECTION_BACKGROUND": "49483E",
        "LINE_NUMBERS": "75715E",
        "KEYWORD": "F92672",
        "STRING": "E6DB74",
        "COMMENT": "75715E"
    }
    
    # 修改特定语法高亮
    for scheme in root.findall(".//*[@name]"):
        color_name = scheme.get("name")
        if color_name in sublime_colors:
            # 修改前景色
            foreground = scheme.find(".//option[@name='FOREGROUND']")
            if foreground is not None:
                foreground.set("value", f"#{sublime_colors[color_name]}")
            
            # 修改背景色(如果需要)
            if color_name == "SELECTION_BACKGROUND":
                background = scheme.find(".//option[@name='BACKGROUND']")
                if background is not None:
                    background.set("value", f"#{sublime_colors[color_name]}")
    
    # 保存修改后的主题
    tree.write(output_file, encoding="UTF-8", xml_declaration=True)
    print(f"主题已保存至: {output_file}")

# 使用示例
modify_theme_to_sublime_style(theme_file, theme_path / "Sublime_Monokai.icls")

修改后需要在PyCharm的Preferences | Editor | Color Scheme中选择新主题。更彻底的做法是直接编写完整的.icls文件,可以参考Sublime的.tmTheme文件结构进行转换。

总结:直接改XML比用Python绕弯子更实在。

看起来也不错,稍稍冷了点

mac 10.13
pycharm 2017.3.2 专业版
提示

这个网站有 http://thenesmap.com 很多主题,:)

发错了,这个网站有 http://themesmap.com 很多主题,:)

貌似是 OS 不同,jar 打包需要修改设置。试试 icls

类似的网站我之前也找到过,然后找到的 sublime monokai 都会 map 成奇怪的配色,不知是不是版本问题。

window 测试没问题= =

感觉没有 Monokai 好看, Monokai 是我 VIM 最喜欢的配色

我用的就这个。。

这里面的我也试过,同上,会变奇怪配色

我最喜欢的配色是 one dark,所有的编辑器都改成这个配色,连输入法候选项都是。。。。。。。

感觉色调太冷了

#14 数码输入法

什么输入法

这就是各有所爱吧。自个儿喜欢就行

搜狗五笔。。

#19 搜狗有这皮肤吗? 搜了一下没有

配色方案这个东西主观性太强了,看个人喜好吧。
Sublime Text 3 的配色比较艳丽醒目,比较适合做 Demo 用,
如果写代码初用还好,眼睛盯时间长了更易疲劳,多少有点乱心。

反观原版 MonoKai 更清淡素雅,颜色对比没有那么强烈,长时间用眼睛相对比较舒适。
全是个人看法。

就是自己改了个配色而已





[配色链接]( http://tmtheme-editor.herokuapp.com/#!/editor/theme/One%20Dark)

这个 editor 挺好

这个不错哦~

请问用的是什么字体,字体很漂亮

dejavu sans mono (Ubuntu 16.04)

配色好评 已 apply

回到顶部