跳转到主内容
极星编程网:以代码为星,赴技术山海!

Sublime怎么修改选中文本的颜色?Sublime自定义选中区域高亮

需编辑当前启用的.sublime-color-scheme文件,在rules数组中找到"name": "Selection"项,修改其background值为合法十六进制(如"#3399ff")或HSLA/RGBA字符串(如"hsla(210,30%,70%,0.3)"),保存后立即生效。 怎么改 selection 的 background 颜色? Sublime 的选中文本颜色不是靠
Preferences.sublime-settings
控制的,必须修改当前启用的
.sublime-color-scheme
文件。你看到的“选中后看不见”“像没选中”“反光刺眼”,基本都是因为主题里
"name": "Selection"
这条规则的
background
值和编辑器背景太接近,或者用了纯黑/纯白导致对比过强。 先按
Ctrl+Shift+P
(Windows/Linux)或
Cmd+Shift+P
(macOS),输入
Show Scope Name
回车,确认当前 scheme 路径,比如
Monokai.sublime-color-scheme
用命令面板运行
PackageResourceViewer: Open Resource
,找到对应文件,复制全文到
Packages/User/
下新建副本(如
Monokai-custom.sublime-color-scheme
) 在副本里搜索
"name": "Selection"
或
"scope": "selection"
,修改其中的
background
值,例如:
"background": "#3399ff80"
(注意:Sublime 不支持 8 位 hex 如
#3399ff80
,得用 HSLA/RGBA 格式,但 JSON scheme 中只认合法十六进制;实际应写成
"#3399ff"
,透明度需靠主题自身支持或换用 HSLA 字符串) 保存后立即生效,不用重启;若无效,检查 JSON 是否有语法错误(尤其逗号、引号、括号闭合) 为什么改了 selection 还是看不见同词高亮? 这不是
selection
的问题,而是原生
highlight_word
功能依赖另一个 scope:
"name": "Highlight"
(或带
region.
前缀的规则)。很多暗色主题把它的
background
设成极淡的灰(如
"#33333380"
),在深背景上几乎不可见——看起来像功能失效,其实是颜色太淡。 在同一份
.sublime-color-scheme
文件里搜索
"Highlight"
或
"region.yellowish"
等关键词 优先改
background
,别只调
foreground
(那是文字色,对高亮无效) 避免用纯色值如
"#FFFFFF"
,推荐带 alpha 的 HSLA/RGBA,比如
"hsla(60, 40%, 90%, 0.4)"
,既清晰又不刺眼 确认用户设置里没关掉功能:
Preferences → Settings
右侧检查没有
"highlight_word": false
改颜色时最容易踩的坑有哪些? 绝大多数失败都出在路径、语法或作用域误判上,不是 Sublime 不支持,而是改错了地方。 仿Sublime和notepad++编辑器效果 仿Sublime和notepad++编辑器效果 下载 改完保存,颜色完全没变 → 检查是否编辑的是
Packages/User/
下的副本,而不是只读的原版(
Packages/xxx/
下的文件改了也无效) 高亮变成一块实心色块,盖住文字 →
background
值不带透明度(如用了
"#FFD700"
而非
"hsla(40, 100%, 70%, 0.3)"
),遮挡了
foreground
文字色 只有部分单词高亮,比如选中
user_id
却不亮
user_id_list
→ 这是正常行为,Sublime 按 token 边界(下划线、大小写变化等)切分,不是字符串模糊匹配 Sublime Text 4 的 color_scheme 格式要注意什么? Sublime Text 4(v4143+)强制使用 JSON 格式的
.sublime-color-scheme
,旧版的
.tmTheme
已不被支持。 找到你当前用的主题文件夹(比如
Material Theme/
或
Default/
),里面会有类似
Material-Theme-Darker.sublime-color-scheme
的文件 必须把新规则加在
"rules"
数组末尾,不能放在
"globals"
下
"background"
值必须是合法十六进制(如
"#3399ff"
),不支持
rgb()
或命名色;HSLA/RGBA 需写成字符串形式,且主题引擎必须支持(并非所有版本都兼容) 若想让光标所在行的选中色更醒目,可额外加一条
"name": "Line Selection"
规则 真正容易被忽略的是:Sublime 的高亮逻辑分层很细,
selection
、
Highlight
、
lineHighlight
各自独立控制,改错一个 scope 就会以为整个功能坏了。

相关文章