要让双击跨连字符选中,需删除word_separators中的“-”;若仍无法选中obj.method,则还需删除其中的“.”;但删减过多会导致浮点数、路径等被整体选中,影响编辑效率,推荐按语言使用syntax-specific设置。

双击选中不完整,根本不是鼠标或系统问题,而是 word_separators 配置项在起作用——它硬性定义了哪些字符算“断词点”。改对了,user-name、obj.method、bg-red-500 就能一气选中;改错了,连 https://example.com 都可能糊成一个词。
怎么改 word_separators 让双击跨连字符选中?
默认值里包含 -,所以 user-name 会被切成两段。要整体选中,就得删掉这个字符:
- 打开 Preferences → Settings – User(右边面板)
- 找到或新增
"word_separators"字段,例如:"word_separators": ".,;:!?()[]{}"'`-:\|/\_~@#$%^&*+= " - 把其中的
-删掉(注意:只删这个字符,别动其他转义符) - 保存,立即生效,不用重启
为什么删了 - 还是选不全 obj.method?
因为 . 也在默认 word_separators 里。双击 obj.method 只选 obj 或 method,说明点号没被移除:
- 同样在用户设置里,检查
word_separators是否还含. - 删掉
.后,obj.method和this.state.value都会整体被选中 - 但要注意:删
.后,123.456也会被当一个词——写浮点数或 URL 时反而难编辑 - 如果只在特定语言里需要这种行为(比如 JS),优先用语法专属设置:
Packages/User/JavaScript.sublime-settings
删太多分隔符会出什么问题?
word_separators 不是“定义单词”,而是“定义哪里打断单词”。删得越狠,连续字符越长,副作用越明显:
- 删掉
/:路径如/usr/local/bin会被整个选中,编辑单个目录名变困难 - 删掉
_:虽然能让user_name整体选中,但也会让__proto__或__init__失去语义分隔 - 删掉
:或;:CSS 属性如color:red;可能被一整行选中,影响 Ctrl+D 多光标操作 - 语法包设置优先级高于全局用户设置,如果某个语言(如 Python)自带
word_separators,你的全局修改会被覆盖
真正麻烦的不是改配置,而是权衡:不同语言对“标识符”的理解不同,user-name 在 CSS 里是合法类名,在 Python 里却是非法变量名。最稳的做法是按需用 syntax-specific 设置,而不是一刀切改全局 word_separators。











