Sublime Text 默认将连字符视为单词边界,需在 Settings – User 中修改 word_separators 删除“-”以支持双击选中 user-name 等连字符组合,同时影响光标跳转等单词操作。

Sublime Text 默认不把连字符当作单词边界
Sublime Text 默认的 word_separators 配置里,-(连字符)被包含在分隔符列表中,所以双击 user-name 会分别选中 user 和 name,而不是整个 user-name。这不是 bug,是设计如此——但可以改。
修改 user-settings 中的 word_separators
需要从默认设置中移除连字符 -,让 Sublime 把它视作单词内部字符。操作路径:Preferences → Settings – User,然后在右侧 JSON 中添加或修改 word_separators 字段:
{
"word_separators": "./\\()\"'-:,.;<>~!@#$%^&*|+=[]{}`~?"
}
注意:上面字符串里已去掉 -;原始默认值(可在 Settings – Default 里查到)包含 -,直接复制后删掉即可。改完保存,无需重启,立即生效。
常见疏漏点:
- 误删了其他必要分隔符(比如
.或/),导致双击选中过大范围(如整个 URL) - 在
Settings – Default里修改 —— 这个文件只读,改了也无效 - 忘记用英文引号、逗号,导致 JSON 解析失败,设置不生效(Sublime 底部状态栏会提示 error)
连字符单词在不同语言语法高亮下的表现
即使改了 word_separators,双击选中行为本身是编辑器级的,和语法高亮无关;但某些语法(如 CSS、HTML 属性名)里 user-name 本就是合法标识符,改完后选中更符合直觉。而像 Python 中 user-name 本身是非法变量名(会报 SyntaxError),这时强行让它可双击选中反而可能掩盖拼写错误。
所以建议:
- 仅在你高频处理含连字符标识符的场景下(如前端 class 名、CSS 自定义属性、JSON key)启用该配置
- 如果同时写 Python/JS 混合项目,且对变量命名敏感,可考虑用 WordHighlight 插件做局部高亮,而非全局改
word_separators
替代方案:用正则快速选中连字符单词
不想动全局设置?可以用快捷键临时解决:
- Windows/Linux:
Ctrl+F→ 输入正则\b[\w-]+\b→ 勾选.*(正则模式)→Find All,再按Esc退出搜索,所有匹配自动被选中 -
macOS:
Cmd+F同理 - 想绑定为快捷键?可自定义
key bindings,触发find_all命令并预填正则
这个方法不影响其他编辑行为,适合偶尔需要精确选中连字符组合的场景。
真正要注意的是:改 word_separators 后,不仅影响双击,还会影响 Ctrl+←/→ 光标跳转、Ctrl+Shift+←/→ 选择单词等所有基于“单词”概念的操作。别只盯着双击,顺手试试光标移动是否符合预期。










