ctrl+shift+home直接选中光标到行首(含空格),按逻辑行处理,不受软换行影响;光标已在行首则无反应;macos对应cmd+shift+home;区别于shift+home和ctrl+shift+←,后者分别受限于视觉行和单词边界。

Ctrl+Shift+Home 选中光标到行首(含空格)
这是最直接、最稳定的方式。光标停在某行任意位置(比如变量名中间或缩进后),按 Ctrl+Shift+Home,就会从光标处向左选中到行首——包括开头的空格或制表符,但不包含换行符。
常见错误是误用 Shift+Home:它只在当前“视觉行”内选中(受软换行影响),而 Ctrl+Shift+Home 始终按真实逻辑行处理,更可靠。
- Windows/Linux 用
Ctrl+Shift+Home;macOS 对应的是Cmd+Shift+Home - 如果光标已在行首,该组合键无反应——这是正常行为,不是失效
- 在折叠代码块里仍有效,但不会跨折叠边界(即只选当前展开部分的行首到光标)
为什么不用 Ctrl+Shift+←?
Ctrl+Shift+← 是按“单词”向左扩展选区,不是按行。它会在遇到 .、_、/ 等符号时停住,比如 user.name 光标在 name 后,按一次只选中 name,再按才选 .name,根本达不到“到行首”的效果。
真正需要截取半行(如删掉前缀、提取字段名),优先用 Ctrl+Shift+Home,而不是依赖单词粒度的移动。
行首截取后想快速删除或剪切?
选中后直接按 Ctrl+X 就能剪切(保留进剪贴板),或者 Ctrl+K + Ctrl+K 删除到行尾——但注意后者会删光标右侧全部内容,不是只删选区。
- 如果只想删选中的这部分,就用
Ctrl+X或Delete - 如果删完还想留空格对齐,建议先用
Ctrl+Shift+Home选中,再按Backspace(比Delete更符合左手操作习惯) - 某些语言语法(如 Python 缩进敏感)下,删掉行首空格可能破坏结构,得留意缩进层级是否一致
鼠标拖选行首区域容易错在哪?
鼠标方案只适合粗粒度操作:把光标移到行首空白处(非字符上),按住左键横向拖动——但 Sublime 不会自动“吸附到行首”,拖动起点偏移一像素,就可能漏掉第一个空格或多选一个换行符。
相比之下,Ctrl+Shift+Home 是确定性行为,不受鼠标精度、DPI 设置或缩放比例影响,尤其在高分屏或远程桌面环境下更稳。
真正难的不是怎么选,而是选完之后要不要保留缩进、是否涉及语法上下文(比如 JSON key 前的空格不能乱删),这些得看具体代码结构,快捷键本身解决不了语义问题。











