必须先精确选中目标词(如双击user_id),再按Ctrl+D逐次匹配相同字符串;未选中时自动双击易误判边界,导致后续匹配偏移。

Ctrl+D 选词必须先有干净选区
Sublime 的 Ctrl+D(Windows/Linux)或 Cmd+D(macOS)不是“点哪选哪”,而是严格基于你**当前选中的文本内容**做逐字匹配。没选中时它会自动双击光标处单词,但这个“自动双击”常误判边界——比如光标停在 user_id 的下划线后,Ctrl+D 可能只选中 _id,后续所有匹配都偏移。
真正可控的做法只有一步:先用鼠标双击或 Ctrl+Shift+→ 精确选中目标词(如完整 user_id),再按 Ctrl+D。之后每按一次,就向后找下一个完全相同的字符串,不跳过、不扩展、不智能补全。
- 已部分选中(如只框了
log而非console.log),Ctrl+D就只匹配log,不会自动识别为方法名 - 想跳过某个匹配?按
Ctrl+K再按Ctrl+D,它会标记跳过并继续找下一个 - 开了
match_whole_word(默认开启),user不会匹配username或user_id—— 这是保护,不是 bug
Alt+F3 全选同词前必须确认大小写和词界
Alt+F3(Windows/Linux)或 Ctrl+Cmd+G(macOS)是暴力全量匹配,但它不自动区分单词边界,也不默认忽略大小写。光标停在 GetUser 上却只双击没选中,直接按 Alt+F3 可能只匹配 Get 或 User,因为 Sublime 按光标位置切分 token。
正确流程是:双击选中完整标识符 → 检查右下角状态栏:case 表示大小写敏感,点一下关闭;W 表示整词匹配,没亮就按 Alt+W 打开;如果要排除 user_id 中的 user,得手动开正则模式(Alt+R),搜索 \buser\b,再按 Alt+F3。
- 超 500 处匹配时界面明显卡顿(比如日志里满屏
i),别硬进多光标编辑,直接用Ctrl+H替换更稳 - 右下角显示
regex却忘了关,Alt+F3会按正则逻辑匹配,比如选中a.可能匹配任意字符
Shift+End 是唯一不依赖语法的行尾选择方式
想提取参数、清理行尾空格、或快速复制某行后半段?Shift+End 是最稳的选择——它只认物理行尾,不看语言模式、不被软换行干扰、不因折叠失效。光标在 return func(a, b, c) 的逗号后,按 Shift+End 就精准选中 , c)。
常见误操作:单独按 End 只移动光标,必须按住 Shift;光标已在行尾换行符前,Shift+End 选中空内容,这是正常表现,不是失效。
- 软换行(word wrap)会让视觉上“一行变多行”,但
Shift+End始终停在真实行尾,和是否折行无关 - 混用
\r\n和\n会导致逻辑行错乱,但Shift+End不受此影响,它只处理当前物理行
Ctrl+L 选整行实际选的是“逻辑行”,不是你看到的那一行
Ctrl+L(Windows/Linux)或 Cmd+L(macOS)表面是“选当前行”,实则是 Sublime 解析出的“逻辑行”。如果右下角语言模式是 Plain Text,你在写 Python,Ctrl+L 可能在字符串中间断开;如果文件含 BOM 或混用换行符,物理上的一行会被切成多个逻辑行;如果光标落在被 Ctrl+Shift+[ 折叠的函数块里,Ctrl+L 会选中整个折叠单元,而非你视觉上看到的那行。
真正可靠的操作链是:先点右下角切换正确语言模式 → 用 Ctrl+Shift+P 输入 Convert Line Endings: Unix 统一为 LF → 展开所有折叠(Ctrl+Shift+])→ 再按 Ctrl+L。
- 已选中部分文字时按
Ctrl+L,会先清空原选区再重选当前行,别误以为快捷键失灵 - 多光标状态下按
Ctrl+L,每个光标都会独立执行“选中所在行”,结果是每行各选一行,不是批量选中 - Vintage 模式(vi 键绑定)下
Ctrl+L被覆盖,此时要用Shift+V进入行选择模式

















