sublime text中快速选中当前单词默认用ctrl+d(win/linux)或cmd+d(macos),首次触发选中光标所在单词,再次按下则逐个选中后续相同单词;若需全选同词,用ctrl+alt+g(win/linux)或ctrl+cmd+g(macos)。

Sublime Text 里怎么快速选中当前单词
默认按 Ctrl+D(Windows/Linux)或 Cmd+D(macOS)即可选中光标所在单词。这是最直接的方式,不需要额外配置。
它本质是「逐次扩展选择」:第一次按选中当前单词,再按一次会跳到文档中下一个相同单词并选中,适合批量编辑。
- 如果光标在单词中间但没选中任何内容,
Ctrl+D会先选中整个单词(基于词边界,不是空格分隔) - 若已手动选中一段文本,
Ctrl+D会转为“查找并选中下一个相同内容”,不再局限于单词粒度 - 选中后按
Ctrl+K Ctrl+D可跳过当前匹配项,继续找下一个——避免误选干扰项
想一次性选中所有相同单词怎么办
用 Ctrl+Cmd+G(macOS)或 Ctrl+Alt+G(Windows/Linux)。这个快捷键会立刻高亮并选中当前文档中所有与当前选中词完全匹配的实例。
注意它区分大小写和全字匹配:默认只匹配完整单词,不会把 func 和 function 搞混;但如果你选中的是 name,而文档里有 username,它不会被选中——除非你先关闭「全字匹配」。
- 确认是否启用全字匹配:菜单栏 Find → Find... 打开搜索框,检查右下角是否有
图标(表示开启) - 临时关闭全字匹配:按
Alt+Enter切换,之后Ctrl+Alt+G就会做子串匹配 - 该操作不依赖语法高亮,纯文本层面匹配,所以对注释、字符串里的内容也生效
为什么有时 Ctrl+D 选不中整个单词
常见原因是 Sublime 把某些符号(比如下划线 _、点号 .、短横线 -)当作了单词的一部分。比如变量名 user_name 默认被识别为一个单词,而不是两个。
这由 word_separators 设置控制,它定义了哪些字符打断单词识别。默认值里包含 _,所以 hello_world 是一个“单词”。
- 想让
_成为分隔符:打开 Preferences → Settings,在右侧用户设置里加一行:"word_separators": "./\()"'-:,.;<>~!@#$%^&*|+=[]{}`~?"(去掉下划线) - 改完后
Ctrl+D在user_name上会先选user,再选name - 这个设置影响所有基于单词的操作,包括双击选中、跳转词首/词尾(
Ctrl+←/→)
有没有办法让选中更智能,比如只选变量名不选字符串里的
原生 Sublime 不支持语义级选择(比如只选变量引用,排除字符串和注释),但可以靠插件逼近效果。
SideBarEnhancements 或 Expand Selection to Scope 这类插件能按作用域扩展选择,比如把光标放在变量上,按插件绑定的快捷键,可优先选中 source.python variable.other.readwrite 这类 scope 下的内容。
- 安装插件后,常用操作是
Ctrl+Shift+P输入Expand Selection to Scope绑定快捷键 - 对 Python/JS 等语言较有效,但依赖语法定义文件是否准确;HTML 中 class 名可能被识别为字符串而非类名
- 别指望它 100% 精准——Sublime 本身没有 AST 解析能力,所谓“智能”仍是正则+scope 的组合拳
Ctrl+D 和 Ctrl+Alt+G 的组合:先用前者试水,确认匹配逻辑符合预期,再用后者批量处理。真正容易被忽略的是 word_separators 设置——很多人卡在“为什么下划线连着的词总是一起被选”,却不知道根源在这里。










