Ctrl+L选整行需光标在逻辑行内:按一次选中该行内容(不含换行符),连续按逐行扩展;光标位置、语言模式、换行符类型及代码折叠状态均影响其行为。

Ctrl+L 选整行,但光标位置决定是否生效
按一次 Ctrl+L(Windows/Linux)或 Cmd+L(macOS),只选中光标所在“逻辑行”的内容(不含换行符)。它不看视觉位置,而依赖 Sublime 对文件结构的解析:
- 光标必须落在该行的任意字符上——如果停在空行末尾或折叠块内部,可能选中整个折叠单元而非单行
- 语言模式影响分词:右下角显示
Plain Text时,Ctrl+L可能被字符串引号或注释打断;写 Python 就切到Python模式 - 混用
\r\n和\n会导致一行被拆成多个逻辑行;用Ctrl+Shift+P→Convert Line Endings: Unix统一为 LF - 已存在选区时按
Ctrl+L,会清空原选区、重选当前行——别误以为快捷键失灵
Ctrl+D 匹配单词,起点由光标落点严格决定
Ctrl+D 不是“选中高亮词”,而是“从光标当前位置出发,找下一个完全相同的字符串”。常见失效场景全和落点有关:
- 光标停在
user_id的i上 → 第一次按选中id,第二次就匹配下一个id(可能误中identity) - 光标在单词末尾右侧(如
data|)→ 第一次按大概率只选中一个空格或换行符 - 已部分选中(如只框了
log而非console.log)→ 后续Ctrl+D按你框的那截去匹配,不会自动扩到完整标识符 - 想确保匹配整个变量名:先双击选中
user_id,再按Ctrl+D
Alt+F3 全量匹配同词,但默认不识别单词边界
Alt+F3(Windows/Linux)或 Ctrl+Cmd+G(macOS)才是真·全选,但它默认行为很“直男”:
- 大小写敏感:状态栏显示
case就表示开启;点一下关闭,User和user才能一起被选中 - 不自动按单词边界匹配:光标在
get_user_name()中,Alt+F3可能只选中get或user——先双击选中整个函数名,再按 - 想只匹配独立
id(避开user_id或identity):用Ctrl+F输入\bid\b,确认右下角W(Whole Word)点亮,再按Alt+Enter - 超过 500 处匹配时界面明显卡顿(比如日志里满屏
i),此时别硬进多光标编辑态,直接用Ctrl+H替换更稳
列选择与多光标共存时,模式切换容易丢光标
列选择(竖向拖拽)和多光标编辑是两套机制,不能叠加。一旦进入列选状态,Ctrl+D 等快捷键全部失效:
- 列选择触发方式:
Shift+Alt(Windows/Linux)或Shift+Cmd(macOS)+ 鼠标拖拽;松手即进入列选模式 - 列选状态下按方向键、
Esc或点空白处可退出;不退出就无法用Ctrl+D或鼠标 Ctrl 点击加光标 - 系统级快捷键冲突常见:比如 Windows 的
Alt+Tab会拦截Shift+Alt,此时改用命令面板Ctrl+Shift+P→ 输入Column Selection手动开启 - 列选后输内容,所有光标同步生效;但只要开始输入,就自动退出列选——这是设计行为,不是 bug
真正难的不是记住快捷键,而是每次操作前下意识检查三件事:光标在哪、当前语言模式是什么、drag_text 是否为 false。漏掉其中任一,Ctrl+D 就可能选错,Ctrl+L 就可能跳行,列选就可能触发不了。











