Sublime怎么配置双击高亮JSON相同的变量

轻伟大大_3785

轻伟大大_3785

2026-11-07

724人浏览

原创

Sublime Text 原生不支持双击高亮 JSON 相同键名,因其无语义解析能力;需用 HighlightWords 插件配合 \bkey\b 正则实现可控全字高亮,并通过侧边栏批量管理或多条件筛选提升效率。

sublime怎么配置双击高亮json相同的变量

Sublime Text 本身不支持“双击高亮 JSON 中相同变量”这种行为——它没有针对 JSON 的语义级变量识别能力,所谓“变量”在 JSON 里只是键(key)或字符串值(value),没有作用域、声明或类型信息。你真正能做的,是用正则匹配 + 全字高亮,模拟出接近的效果。

为什么原生 double-click 不行

双击默认触发的是 Sublime 的 highlight_word 命令,它只做「当前光标下完整单词的纯文本全字匹配」,且完全不感知语法结构: • 它会把 "user_id" 键、"user_id": "123" 的值、甚至注释里的 // user_id is deprecated 全部高亮 • 在 JSON 中,id 和 "id" 被视为不同文本,无法跨引号智能关联 • 它对嵌套对象、数组项、转义字符串(如 "name": "John \"Doe\"")完全无感

用 HighlightWords 插件加 \b 正则实现可控高亮

这是目前最贴近需求的实操路径,重点在「避误匹配」和「限作用域」:

  • 先装插件:Ctrl+Shift+P → Package Control: Install Package → 输入 HighlightWords(不是 WordHighlight 或 Highlighter)
  • 关掉原生高亮,避免冲突:Preferences → Settings 用户配置中加 "highlight_word": false
  • 加词必须走命令面板:Ctrl+Shift+P → HighlightWords: Add Word → 输入 \buser_id\b(\b 是单词边界,排除 user_id_v2 或 super_user_id)
  • 若只想高亮键名(不碰值),得手动筛选:先 Ctrl+F 搜 "\buser_id\b":,确认所有命中项都落在 source.json scope 内,再加高亮;否则就接受它也会匹配值中的 user_id 字符串

JSON 文件里怎么让高亮只作用于 key 名

HighlightWords 本身不支持 scope 过滤,但你可以用 Sublime 的语法作用域规则间接控制:

Expanso yaml-to-json
Expanso yaml-to-json

使用 Expanso Edge 管道将 YAML 输入转换为 JSON 格式。

下载
  • 打开一个 JSON 文件,把光标停在某个 key 上(比如 "cache_key" 的 cache_key 部分)
  • 按 Ctrl+Alt+Shift+P(Windows/Linux)或 Cmd+Alt+Shift+P(Mac),状态栏会显示类似 source.json meta.structure.dictionary.json string.quoted.double.json
  • 这个 string.quoted.double.json 就是 key 的专属 scope;而值的字符串通常是 string.quoted.double.json 同样 scope,所以无法靠 scope 完全分离——只能靠正则限定上下文,例如加 "\bcache_key\b": 而非单纯 \bcache_key\b
  • 更稳妥的做法是:高亮后按 Ctrl+Shift+P → HighlightWords: Remove Word,逐个删掉误匹配的值或注释项,比重装插件快得多

侧边栏管理多个 JSON 关键路径更高效

链路分析时,你常要同时盯住 request_id → trace_id → span_id,一个个加太慢。HighlightWords 的侧边栏(Sidebar)能批量操作,但默认关闭:

  • 启用方式:进插件设置(Preferences → Package Settings → HighlightWords → Settings),加一行 "show_sidebar": true
  • 重启后侧边栏底部会出现已高亮词列表,带颜色编号和开关按钮
  • 点击某词可快速切换「全字匹配 / 忽略大小写 / 正则模式」,适合临时对比 ApiUrl 和 api_url
  • 注意:侧边栏不区分文件,全局高亮开启时,它会混着显示所有打开 JSON 文件里的词——如果只分析单个文件,务必提前设 "global_highlight": false

真正难的不是加高亮,而是判断哪些该高亮:JSON 里没有变量声明,"id" 可能是主键、外键、还是普通字段?靠颜色无法替代语义理解。建议把高亮当辅助索引,关键逻辑仍要结合 Ctrl+F 正则验证 + 手动折叠节点确认上下文。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
js正则表达式
js正则表达式

php中文网为大家提供各种js正则表达式语法大全以及各种js正则表达式使用的方法,还有更多js正则表达式的相关文章、相关下载、相关课程,供大家免费下载体验。

2023.06.20

4816

8

js获取当前时间
js获取当前时间

JS全称JavaScript,是一种具有函数优先的轻量级,解释型或即时编译型的编程语言;它是一种属于网络的高级脚本语言,主要用于Web,常用来为网页添加各式各样的动态功能。js怎么获取当前时间呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.07.28

1415

5

js 字符串转数组
js 字符串转数组

js字符串转数组的方法:1、使用“split()”方法;2、使用“Array.from()”方法;3、使用for循环遍历;4、使用“Array.split()”方法。本专题为大家提供js字符串转数组的相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.03

1878

5

js是什么意思
js是什么意思

JS是JavaScript的缩写,它是一种广泛应用于网页开发的脚本语言。JavaScript是一种解释性的、基于对象和事件驱动的编程语言,通常用于为网页增加交互性和动态性。它可以在网页上实现复杂的功能和效果,如表单验证、页面元素操作、动画效果、数据交互等。

2023.08.17

10363

11

js删除节点的方法
js删除节点的方法

js删除节点的方法有:1、removeChild()方法,用于从父节点中移除指定的子节点,它需要两个参数,第一个参数是要删除的子节点,第二个参数是父节点;2、parentNode.removeChild()方法,可以直接通过父节点调用来删除子节点;3、remove()方法,可以直接删除节点,而无需指定父节点;4、innerHTML属性,用于删除节点的内容。

2023.09.01

1020

4

js截取字符串的方法
js截取字符串的方法

js截取字符串的方法有substring()方法、substr()方法、slice()方法、split()方法和slice()方法。本专题为大家提供字符串相关的文章、下载、课程内容,供大家免费下载体验。

2023.09.04

3024

5

Js中concat和push的区别
Js中concat和push的区别

Js中concat和push的区别:1、concat用于将两个或多个数组合并成一个新数组,并返回这个新数组,而push用于向数组的末尾添加一个或多个元素,并返回修改后的数组的新长度;2、concat不会修改原始数组,是创建新的数组,而push会修改原数组,将新元素添加到原数组的末尾等等。本专题为大家提供concat和push相关的文章、下载、课程内容,供大家免费下载体验。

2023.09.14

1649

5

js截取字符串的方法介绍
js截取字符串的方法介绍

JavaScript字符串截取方法,包括substring、slice、substr、charAt和split方法。这些方法可以根据具体需求,灵活地截取字符串的不同部分。在实际开发中,根据具体情况选择合适的方法进行字符串截取,能够提高代码的效率和可读性 。

2023.09.21

5229

3

js生成随机数方法
js生成随机数方法

JavaScript生成随机数的方法,包括使用Math.random()方法生成指定范围内的随机整数、生成随机字符串和生成随机颜色。根据具体需求,可以选择适合的方法来生成随机数,以实现各种功能 。

2023.09.25

3055

5

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程