需修改用户设置中的 word_separators,删去 - 和 .;若无效,检查语法专属设置或插件干扰,避免过度删除导致数字或路径误选。

怎么改 word_separators 让双击选中 user-name 或 obj.method
Sublime 默认把 -、.、_ 都当词边界,所以双击 bg-red-500 只能选中 bg,点一下就断开。这不是 bug,是靠 word_separators 控制的——它定义“哪些字符**不参与**构成单词”,删掉谁,谁就不再打断选词。
- 打开 Preferences → Settings – User,在右侧 JSON 中添加或修改
"word_separators" - 不要改默认设置(Settings – Default),否则升级后丢失
- 推荐值:
"word_separators": "./\()\"'-:,.;!?[]{}|_~@#$%^&*+=`"(已移除-和.) - 注意:反斜杠
\要转义,写成\/;-放在字符串中间不用额外转义 - 改完保存,立刻生效,不用重启
为什么改了 word_separators 却没反应?常见失效场景
最常不是配错了,而是作用域不对。Sublime 的设置有层级:全局用户设置 → 语法专属设置 → 项目设置,而双击行为优先读取当前文件绑定的语法设置。
- 看右下角显示的语法(比如是
JavaScript还是Plain Text) - 如果显示的是某个语言,去 Preferences → Settings – Syntax Specific 检查是否被覆盖
- 某些语法包(如 TypeScript、JSON)自带硬编码的
word_separators,会直接无视你的用户设置 - 插件也可能干扰,比如旧版 Emmet 或 BracketHighlighter 会劫持鼠标事件;临时禁用插件验证
- macOS 上若开了「使用系统光标行为」,双击逻辑也会偏移
想让双击包含引号内容(比如选中整个 "hello world")
默认 " 和 ' 在 word_separators 里,所以双击引号内文字时,光标停在引号外侧,根本选不全字符串。解决方法就是从 word_separators 里删掉这两个字符。
- 只删
"和',保留其他分隔符(比如.、/、:),否则console.log()或路径会糊成一团 - 稳妥做法:复制默认值,手动去掉引号,粘贴进用户设置;别手敲,容易漏掉
~或` - 不需要为每种语言单独设——Python、JS、CSS 对引号语义一致,统一处理更可靠
- 真有特殊需求(比如 SQL 里只想选
'2024-01-01'但不带单引号),该用插件Expand Selection to Quotes,而不是宽泛改词界
删太多分隔符的代价:什么时候不该动 word_separators
改得太松,编辑体验反而倒退。比如删掉 /,https://example.com/path 就变成一个“词”,双击没法单独选 path;删掉 . 后,obj.method 是连上了,但 123.456 也变一个词,影响数字操作。
- 优先只剔除你明确需要粘连的符号:比如写 CSS 就去
-,写 JS 就斟酌要不要去. - 不同语言对点号语义不同:JS 中
obj.prop是访问,Python 中os.path是模块路径,但1.2是浮点数——没有万能解 - 语法包覆盖比你想象中更常见;
Settings – Syntax Specific看似麻烦,但对.ts或.vue文件往往是唯一靠谱路径
真正难的不是怎么改,是怎么判断当前行为到底受哪一层控制——得先看清右下角语法、再查语法专属设置、最后才动用户全局配置。











