Sublime Text双击选词范围由word_separators控制,删去其中的“-”和“.”可使user-name、obj.method整体被选中;需在Preferences → Settings – User中修改,保存即生效,但须注意语法专属设置优先级更高及删减过度导致数字或路径误选等问题。

Sublime Text 没有“单词间隔”这个设置,所谓“双击选词范围”“光标跳转边界”“Ctrl+D 匹配粒度”,全由 word_separators 控制——它不是定义“单词里有什么”,而是定义“哪些字符**打断**单词”。改对了,user-name、obj.method 就能一气选中;改错了,123.456 和 https:// 都会糊成一团。
怎么让双击选中带连字符或点号的标识符
默认 word_separators 包含 - 和 .,所以双击 bg-red-500 只能选 bg,点一下就断开。解决办法是删掉它们:
- 打开 Preferences → Settings – User
- 添加或修改字段:
"word_separators": "./\()"'_:,.;!?[]{}|~@#$%^&*+=`"(注意:已移除-和.,反斜杠要写成/) - 保存后立即生效,无需重启
⚠️ 不要手敲——复制默认值再删,避免漏掉 ~ 或 ` 导致语法高亮异常。
为什么改了 word_separators 却没反应
最常见不是配错,而是配置没落到当前文件上:
- 右下角看当前语法(比如显示
JavaScript),它可能被 Preferences → Settings – Syntax Specific 覆盖了 - 某些语言包(如 TypeScript、JSON)硬编码了
word_separators,你的用户设置会被无视 - 插件如旧版 Emmet 或 BracketHighlighter 会劫持鼠标双击事件,临时禁用验证
- macOS 开启「使用系统光标行为」时,双击逻辑走系统 API,不读 Sublime 设置
删太多分隔符会出什么问题
word_separators 是“减法逻辑”,删得越狠,选得越宽,但代价明确:
- 删掉
/→https://example.com/path变成一个词,双击无法单独选path - 删掉
.→obj.method()可整体选中,但3.14159也变一个词,影响数字操作 - 删掉
'和"→ 双击能选中整个"hello world",但 JSON key"name"也会连带引号被选,容易误删
稳妥做法:只剔除你高频使用的粘连符号。写 CSS 就去 -;写 JS 且不用小数点数字,再斟酌去 .;其他一律保留。
多光标跳转也受 word_separators 影响
Ctrl+D 选中下一个相同词、Alt+F3 全文匹配、Ctrl+Shift+G 查找所有匹配——这些动作都依赖当前 word_separators 划定的“词”边界。
- 若
match_whole_word为true(默认),username不会匹配my_username,因为下划线是分隔符 - 删掉
_后,Ctrl+D点user可能意外选中username和user_id - 想跳过某处?光标落到那行时按
Ctrl+K再按Ctrl+D,比狂按跳过更稳
真正难调的不是参数本身,而是不同项目对“什么是词”的语义预期不同——CSS 类名要连字符,JS 对象属性要点号,Python 变量又要下划线。没有万能值,只有上下文适配。

















