要让sublime text双击选中user-name、obj.prop、$variable等完整标识符,需修改user设置中的word_separators字段,删去其中的-、.、_、$字符;推荐值为"./\()\"',;:~!#@%^&*|+=[]{}`?",保存即生效,但语法专属设置优先级更高,建议配合settings – syntax specific使用。

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











