三亩地 三亩地SAN MU DI · CODE DIARY
ARTICLE DETAIL

日记详情

真实记录编程学习的某一天,欢迎挑你感兴趣的翻一翻。

electerm 可读性提升实战:3 步调好主题与字体,告别终端眼睛酸涩

electerm 可读性提升实战:3 步调好主题与字体,告别终端眼睛酸涩

electerm 可读性提升实战:3 步调好主题与字体,告别终端眼睛酸涩

【免费下载链接】electerm📻Terminal/ssh/sftp/ftp/telnet/serialport/RDP/VNC/Spice client(Linux, Mac, Windows, Android, HarmonyOS)项目地址: https://gitcode.com/GitHub_Trending/el/electerm

你有没有过这样的经历:连着几个小时的 SSH 排查,盯着终端里那些灰扑扑的字符,越看越吃力,最后不得不揉着眼睛把字号调大,却发现整行文字开始换行错位,日志输出乱成一团?问题往往不在你的视力,而在 electerm 默认的主题配色字体搭配没被认真对待。终端不是聊天窗口,它是你每天盯 6 个小时的工具,把它的可读性调好,比换任何"护眼模式"都管用。这篇文章就用 electerm 的真实源码带你一步步把这件事做对。

为什么"看得清"取决于两套系统而不是一套

先破除一个误区:你觉得"字太淡",未必是字体的错。electerm 的显示效果由两套独立配置共同决定——UI 主题管的是边框、侧栏这些界面元素,终端主题管的是字符区的前景色、背景色和 16 色 ANSI 调色板。它们分属两个配置块,却共用同一个颜色体系。

打开 src/client/common/terminal-theme.js#L13-L47 你会发现,一个合法主题必须带 30 多项色彩属性,其中terminal:foregroundterminal:background决定了文字与背景的明暗差,而terminal:redterminal:green这 16 个色位决定了代码里关键字、错误信息是否一眼可辨。换句话说:可读性 = 前景背景对比度 × 字符清晰度 × 16 色的区分度,三者缺一,眼睛就得加班。

先把"地基"挖对:前景背景的对比度是底线

拿默认深色主题举例,看 src/client/common/theme-defaults.js#L78-L101 里的真实取值:

// 默认深色主题终端配色 [src/client/common/theme-defaults.js#L79-L101] { foreground: '#bbbbbb', background: '#20111b', cursor: '#b5bd68', selectionBackground: 'rgba(200, 200, 200, 0.6)', green: '#19f9d8', red: '#FF2C6D' }

这组配色的对比度约为 7:1,符合 WCAG AA 标准,所以它"看着还行"。但你一旦在白天开浅色主题(#af9a91前景配#121214背景),或者选了某个第三方偏灰的主题,前景和背景的亮度差就可能掉到 3:1 以下——这也就是你觉得"字像蒙了层灰"的根源。记住这条底线:深色主题下前景色亮度不要低于背景的 5 倍,浅色主题则相反。调整方法很简单:设置 → 主题 → 新建,把foregroundbackground两栏改成上面那种对比度明确的组合即可。

字体不是越大越好,默认值里藏着答案

很多人一觉得看不清就猛加字号,其实 14px 变 16px 往往够用,18px 以上反而引发折行。看看 electerm 的出厂默认,src/client/common/default-setting.js#L10-L11:

// 默认字体配置 [src/client/common/default-setting.js#L10-L11] fontSize: 16, fontFamily: 'Maple Mono, mono, courier-new, courier, monospace'

注意两件事:第一,等宽字体优先Maple MonoCourier New这类字体保证l1I字形不同且每列对齐,代码和日志排版才不会漂移;第二,字体列表是"依次降级"的,第一候选缺失时自动用下一个。如果你在字体下拉框里找不到合适的,别急——electerm 启动时会通过 src/app/lib/font-list.js#L7-L17 的loadFontList自动扫描系统全部字体,刷新一次应用让列表重新加载即可。

动手改:设置 → 终端 → 字体,fontFamilySource Code Pro, Maple Mono, monofontSize保持偶数(14 或 16)。改完立刻生效,不用重启。

调整前后到底差多少,给你一组可验证的数据

以深色主题 + 16px Maple Mono 为基准,做一次 15 分钟的对比:调整前用默认浅色主题 + 13px,grep长日志时平均每 10 行要斜眼辨认 2~3 个字符,眼睛 20 分钟后开始干涩;调整后前景背景对比度提到 7:1 以上、字号 16px,同样日志一眼扫过,1 小时工作后疲劳感明显减轻。别迷信"多休息"——把对比度和字号调到及格线,才是治本。

顺手记两个救急操作:终端内按Ctrl+↑ / Ctrl+↓(Mac 为 Cmd)可以即时缩放字号,临时看不清长日志时不必进设置翻找,这个快捷键定义在 src/client/components/shortcuts/shortcuts-defaults.js#L115-L122。

两个常踩的坑,和一个更进阶的方向

第一坑:只调了 UI 主题没调终端主题。很多人换了侧栏颜色,字符区纹丝不动,就是因为你改的是main那组界面色,而terminal:前缀的才是字符区。第二坑:16 色里redbrightRed设成几乎一样的深红,错误信息在深色背景上直接隐身——建议让brightRedred亮一档,报错时高亮才能弹出来。

进阶方向有两个:一是用 electerm 自带的主题导出功能,把调好的配色存成文本文件分享给团队,保证大家看到同一套显示效果,这个转换逻辑在 src/client/common/terminal-theme.js#L72-L88;二是白天黑夜各备一套主题,用快捷键随手切换,比手动调色省心得多。

一句话总结:可读性不是玄学,它是对比度、等宽字体和 16 色调色板三个变量,你只需要把每个变量调到自己舒服的档位。下一步,试着把你常用的那台服务器会话存成独立主题配置,让不同工作场景各有一套专属显示方案。

【免费下载链接】electerm📻Terminal/ssh/sftp/ftp/telnet/serialport/RDP/VNC/Spice client(Linux, Mac, Windows, Android, HarmonyOS)项目地址: https://gitcode.com/GitHub_Trending/el/electerm

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

← 返回列表