Sublime如何设置点击时高亮所有相同词 Sublime WordHighlight设置【插件】

8次阅读

wordHighlight插件未生效需依次排查:安装方式是否正确(推荐Package Control安装)、文件夹名及路径是否规范、word_separators设置是否影响单词识别、其他插件或鼠标映射是否冲突、高亮样式与主题颜色是否兼容,并通过Show Scope Name确认作用域匹配。

Sublime如何设置点击时高亮所有相同词 Sublime WordHighlight设置【插件】

WordHighlight 插件没生效?先确认是否已正确安装

sublime Text 默认不带高亮同词功能,WordHighlight 是第三方插件,必须手动安装。常见失效原因是:只下载了源码 ZIP 但没放进 Packages/ 目录,或用了错误的分支(比如 sublime text 4 装了只兼容 ST3 的旧版)。

  • 打开 Sublime → Preferences → Package Control → Install Package,搜 WordHighlight 并安装(推荐此方式,自动适配版本)
  • 若手动安装:解压后文件夹名必须是 WordHighlight(不能带版本号或下划线),放入 ~/Library/application Support/Sublime Text/Packages/macOS)或 %APPDATA%Sublime TextPackageswindows
  • 安装后重启 Sublime,随便打开一个文件,双击选中一个变量名,看周围是否自动高亮——没反应就说明没装对

高亮不触发?检查 word_separators 和 scope 排除规则

WordHighlight 默认只高亮“单词”,而 Sublime 的 word_separators 设置会影响哪些字符被视作分隔符。例如,user_id 在默认设置下会被拆成 userid,导致无法整体高亮。

  • 打开 Preferences → Settings – Syntax Specific(确保当前是你要编辑的语法,如 pythonjavaScript),添加:
    {   "word_separators": "./\()"'-:,.;<>~!@#$%^&*|+=[]{}`~?" }
  • 如果只想高亮特定作用域(比如只高亮变量,不碰字符串或注释),在 WordHighlight.sublime-settings 中启用 "ignore_scope_list",加入类似 "String.quoted", "comment"
  • 注意:修改 word_separators 会影响整个编辑器的双击选中逻辑,不只是高亮

点击不响应?可能是鼠标事件被其他插件劫持

有些插件(如 SideBarEnhancementsOrigami)会重载鼠标行为,导致双击后不触发 WordHighlight 的监听。

  • 临时禁用其他插件测试:菜单 → Preferences → Package Settings → [插件名] → Disable Package
  • 检查是否有自定义的 Mousemap:打开 Preferences → Browse Packages → User,删掉或重命名 default (OS).sublime-mousemap 文件再试
  • 确保没有开启 "highlight_on_gutter_click"(该选项会让点击行号区才高亮,不是你想要的“点击词”行为)

颜色太淡或冲突?直接改 highlight_style 和 color_scheme

默认高亮色可能被当前主题覆盖,尤其深色主题下黄色背景几乎不可见。

  • 编辑 WordHighlight.sublime-settings,调整:
    {   "highlight_style": "outline",  // 可选 "fill", "outline", "underline"   "highlight_opacity": 0.8,   "highlight_color": "hsl(60, 100%, 75%)" }
  • 更彻底的方式:在当前 color scheme(如 Monokai.sublime-color-scheme)里加一条 rule,匹配 word_highlight scope:
    { "name": "Word Highlight", "scope": "word_highlight", "background": "#ff0" }
  • 注意:改 color scheme 需重启 Sublime 才生效;如果用了社区主题(如 Ayu),得去对应主题 repo 找原始 scheme 文件改,否则更新后会被覆盖

Sublime 的高亮逻辑依赖于「当前光标位置是否落在单词内」+「该位置是否属于可高亮 scope」,两个条件缺一不可。很多人卡在 scope 判断这一步,却只盯着颜色调——先用 Ctrl+Shift+PDeveloper: Show Scope Name 看光标下实际 scope,再决定要不要加 ignore_scope_list

text=ZqhQzanResources