Sublime Text双击选中单词受word_separators控制,修改可扩展选中范围;Ctrl+D逐个选中相同单词,Alt+F3全选同词但不区分作用域。

Sublime Text 里怎么双击选中单词
双击单词是最基础的选中方式,但很多人发现双击后只选中了部分字符(比如 user_name 只选中 user),这是因为 Sublime 默认按「词边界」切分,而下划线、短横线、点号这些符号被当作分隔符。
真正影响选中范围的是 word_separators 配置项。它定义了哪些字符算“断词点”。默认值包含 ./\()"'-:,.;!?[]{},所以 api-v1 会被切成 api、v1 两段。
- 想让双击选中整个
api-v1?删掉短横线-;想连user_name也一起选?删掉下划线_ - 修改位置:Preferences → Settings – Syntax Specific(当前文件类型)或 Settings – User(全局)
- 改完记得保存,不用重启,立即生效
Sublime 怎么快速选中所有相同单词
光标停在某个单词上,按 Ctrl+D(Windows/Linux)或 Cmd+D(macOS)就能逐个选中下一个相同内容——这是最常用也最容易误操作的方式。
常见错误是连按太快,跳过中间匹配项;或者没注意大小写/全字匹配状态,导致漏选或错选。
- 第一次按
Ctrl+D选中当前单词;第二次按,选中下一个相同单词;第三次,再下一个……以此类推 - 按
Ctrl+K Ctrl+D跳过当前匹配项(比如你发现第二个不是想要的,就跳过它) - 按
Ctrl+U撤销上一次选中(比Ctrl+Z更精准,只退选中,不退编辑) - 如果单词区分大小写,确保
case_sensitive设置为true(默认开启);想忽略大小写?临时按Alt+F3(全选同词,无视大小写)
为什么 Ctrl+D 有时不工作或选错范围
根本原因通常是「当前光标没落在完整单词内」,或者「单词被语法高亮/作用域干扰」。比如在字符串里双引号中间写 "user_id",光标停在 i 上按 Ctrl+D,可能只选中 i 这个字母,而不是整个 user_id。
这是因为 Sublime 的「单词识别」依赖于 word_separators 和当前作用域(scope)。在 JSON 或 Python 字符串里,引号内的下划线可能不被视为词的一部分。
- 先确认光标是否在单词内部:把光标移到单词开头或中间,不要贴着标点
- 检查当前文件类型右下角显示的语法(如
Plain Text、Python),不同语法可能加载不同word_separators - 临时切换成
Plain Text试试——如果这时Ctrl+D正常了,说明是语法包限制了词边界判断
Alt+F3 全选同词和 Ctrl+D 的关键区别
Alt+F3 是暴力全选:不管光标在哪、不管大小写、不管是否在字符串里,只要文本中存在完全相同的字符序列,就全部高亮。而 Ctrl+D 是智能递进:只找「与当前选中内容完全一致」的后续匹配,且受作用域和词边界影响。
比如当前选中 id,Alt+F3 会把 user_id、ID、identity 里的 id 全选出来(除非关了正则);Ctrl+D 只会在当前作用域里找独立的 id 单词。
-
Alt+F3适合批量替换固定拼写(如把所有http改成https) -
Ctrl+D更安全,适合局部精细操作(比如只改函数名,不碰字符串里的同名字段) - 用
Alt+F3前务必看一眼右下角状态栏有没有亮起regex或case提示,避免误触正则模式
最麻烦的情况其实是嵌套结构里的单词匹配——比如 JSX 中的 className="btn btn-primary",想只选中 btn 但不选属性值里的其他 btn。这时候得靠作用域过滤,而不是硬记快捷键。别指望一个快捷键解决所有场景。










