highlight-selected默认不响应鼠标选中,需关闭“clear highlights when cursor moves”并勾选“only highlight on selected text”,再用ctrl+click锁定高亮;vue/tsx文件需安装对应language插件,大文件会自动禁用,且避免与minimap-highlight-selected、highlight-line冲突。

装了 highlight-selected 却不亮?不是插件没装好,而是默认配置根本不管“你选中的文本”,只响应光标所在词——这是它和 VS Code 最根本的行为差异,90% 的人卡在这一步。
怎么让 highlight-selected 响应鼠标选中
它默认不响应拖选,只对双击单词或 Ctrl+D(Windows/Linux)/Cmd+D(macOS)扩展选中生效。想让它真正“跟着你选的走”,必须改两个开关:
- 打开 Atom → Settings → Packages →
highlight-selected→ Settings - 取消勾选
Clear highlights when cursor moves - 勾选
Only highlight on selected text
改完后,你用鼠标拖选任意一段(比如变量名 userName),全文所有匹配项立刻高亮,且不会因光标移动消失。
Ctrl+Click 锁定高亮为什么没反应
常见原因不是插件坏了,而是快捷键被其他插件劫持:
-
parinfer默认把Ctrl+Click绑定为“调整括号缩进”,需在它的设置里关闭Enable click-to-edit -
vim-mode下,Ctrl+Click会被拦截;建议在keymap.cson里重映射:'atom-text-editor.vim-mode:not(.insert-mode)': 'ctrl-alt-h': 'highlight-selected:toggle' - 先用
atom --safe启动测试:如果此时能正常Ctrl+Click,就确认是插件冲突
为什么 Vue/TSX 文件里变量不亮
highlight-selected 依赖语言包提供的 scope 解析,不是纯文本匹配:
- Vue 单文件组件需装
language-vue,否则<script></script>块里的const变量识别失败 - TSX 文件需装
language-typescript-react,否则 JSX 中的props.name不被视为变量名 - 大文件(>5000 行)会自动禁用,控制台会打印
highlight-selected: disabled due to large file
和 minimap-highlight-selected、highlight-line 冲突怎么办
三者底层都操作 DOM marker,叠加容易错位或互相清除:
-
minimap-highlight-selected负责缩略图里的当前行和选区映射,和主编辑区高亮无关 -
highlight-line管当前行背景色,但一旦highlight-selected开启Only highlight on selected text,它会主动清掉highlight-line的标记 - 真要共存:关掉
highlight-selected的Clear highlights when cursor moves,但**不要勾选**Only highlight on selected text;用Ctrl+Click触发高亮,而非拖选
高亮逻辑本质是 DOM 层级覆盖,不是颜色叠加——哪个插件最后写 marker,哪个就生效。别指望它们“和谐共处”,得按使用场景做取舍。











