sublime text双击选词逻辑由word_separators控制,需删除-和.以支持user-name、obj.method;ctrl/cmd+拖拽可多光标编辑;语法包可能覆盖全局设置;highlight_word导致大文件卡顿,应关闭。

双击选中单词时包含连字符和点号
Sublime Text 默认双击只选中字母、数字和下划线,遇到 user-name 或 obj.method 会断开成三段。这不是 bug,是靠 word_separators 控制的分词规则。
想让双击选中整个 user-name 或 console.log,得改用户偏好设置:
- 菜单 → Preferences → Settings – User
- 添加或修改
"word_separators",删掉其中的-和. - 推荐值:
"word_separators": "./\()"'-:,.;~!@#$%^&*|+=[]{}`~?"(去掉-和.)
改完保存,不用重启,立刻生效。但注意:改得太宽(比如去掉 /),https://example.com 也会被当一个词选中——这在写 URL 时反而碍事。
按住 Ctrl/Cmd + 鼠标左键拖拽选中多个单词
这是 Sublime 的「列选择+多光标」组合技,但默认行为容易误触:松开 Ctrl 后光标还在,再点一下就清掉其他光标,只剩当前行。很多人以为功能坏了。
关键不是“怎么开”,而是“怎么稳住”:
- 按住
Ctrl(Windows/Linux)或Cmd(macOS)不放,再按住鼠标左键横向拖拽——这时会高亮多个单词,每词一个光标 - 松开鼠标,但 别松 Ctrl/Cmd;此时可直接打字,所有光标同步输入
- 松开 Ctrl/Cmd 后,再点任意位置才会取消多光标
- 如果已松开 Ctrl 却还想保留光标,按
Ctrl+Shift+L(macOS 是Cmd+Shift+L)能把当前选中行转为多光标
这个操作对批量改变量名、加前缀、补括号特别快,但新手常卡在“松太快”这一步。
不同语言下单词选择逻辑不一致
Sublime 会根据当前文件语法(如 Python、JavaScript、JSON)加载对应语法定义,而各语法包自带的 word_separators 可能覆盖全局设置。比如 JSON 文件里双击 "key": "value",引号内的点号可能仍不参与选中——因为 JSON 语法包强制设了更严格的分隔符。
排查方法很简单:
- 打开一个文件,确认右下角显示的语法(如
JavaScript) - 菜单 → View → Syntax → Open all with current extension as… → 选
Plain Text临时切换,看双击是否变正常 - 如果变正常,说明是语法包干扰;可安装
PackageResourceViewer插件,定位到对应语法包的.sublime-syntax文件,搜索word_separators - 不建议直接改语法包,优先用
Settings – Syntax Specific覆盖(即右键文件 → Settings – Syntax Specific)
这点容易被忽略:你以为调好了全局设置,结果在 .ts 文件里又失效——大概率是 TypeScript 语法包在背后改了规则。
选中后自动高亮同名单词太卡?关掉它
开启 highlight_modified_tabs 或 match_brackets 不会影响单词选择,但 highlight_line 和尤其是 highlight_matching_brackets 不是问题;真正拖慢的是 highlight_word(即双击选中后,文档里所有相同单词都高亮)。小文件没事,但打开 10MB 日志或压缩 JS 时,Sublime 会明显卡顿甚至无响应。
关闭方式很直接:
- 菜单 → Preferences → Settings – User
- 加一行:
"highlight_word": false - 或者更精细地:只在大文件里关,用插件
AutoSetSyntax或自定义插件监听on_load事件动态设
别小看这个开关——它不改变选择行为,只影响渲染。但很多人调了半天 word_separators,结果卡顿根源其实在这儿。










