双击选不全变量名是因为默认word_separators将_、-、.、$设为断词点;需在用户设置或语法专属设置中移除这些字符,保存即生效,且影响ctrl+d、光标跳转等所有单词级操作。

双击选不全变量名,不是鼠标或系统问题,是 word_separators 配置在起作用——改它就对了,不用重启、不装插件、立刻生效。
为什么双击只选中 user 或 name,而不是 user_name
Sublime 默认把下划线 _、连字符 -、点号 .、美元符 $ 都当“断词点”,遇到就切开。所以 user_name 被切成两块,obj.method 停在 obj 后,$data 漏掉 $。
- 删
_→ 支持user_name、file_path - 删
-→ 支持user-name、bg-red-500 - 删
.→ 支持console.log、this.state - 删
$→ 支持$this、$api_url(PHP/JS 常见)
推荐修改后的值(已移除上述四字符):"word_separators": "./\()\"',;:~!#@%^&*|+=[]{}`?"。注意反斜杠必须写成 /,引号和逗号要合法,否则设置失效(底部状态栏会报错)。
改了设置却没反应?大概率是语法包覆盖了
右下角看当前语法类型(如显示 TypeScript 或 PHP),这些语言包自带的 .sublime-syntax 文件可能重写了 word_separators,优先级高于用户全局设置。
- 临时验证:菜单 → View → Syntax → Plain Text,再双击试试——如果正常了,基本就是语法包覆盖
- 正确做法:右键当前文件 → Settings – Syntax Specific,在弹出的 JSON 中加同样字段,保存即生效
- 已打开的文件改完后,需重新点击光标位置,才能刷新选中逻辑
word_separators 不只影响双击,还控制所有“单词级”操作
它是个底层分词开关,Ctrl+←/Ctrl+→、Ctrl+D、Alt+F3 全部受其约束。
- 删
.后,console.log不再停在点号两侧,光标会跨整个标识符跳转 -
Ctrl+D会把$user_id和$user_name当两个不同词(因为_被删了,user_id ≠ user_name) - 删
/后,https://example.com可能被当成一个“词”,写 URL 时反而卡手
真正容易被忽略的是:一套 word_separators 很难适配所有语言。PHP 依赖 $,JS 里 $ 多用于 jQuery 或模板字符串(${x}),而正则中 $ 是行尾锚点——混用时建议优先用 Settings – Syntax Specific,而不是全局硬改。











