Sublime多行选中需精准控制光标位置、关闭软换行、确保换行符一致;Ctrl+D依赖词首/尾光标与大小写设置,Ctrl+Shift+L需真正选中含换行符的多行,列选择粘贴需行数对齐或正则替换。

Sublime 里多行选中不是靠“拖鼠标拉满”,而是用组合键精准控制光标位置和选区范围——选错起点、忽略换行符、误开软换行,三者任一都会让 Ctrl+D 或 Ctrl+Shift+L 失效。
Ctrl+D 选中相同词但总跳过目标?光标位置和匹配逻辑是关键
Ctrl+D 的行为严格依赖光标落点:它从当前光标所在位置开始,向右找第一个完整单词(由 word_separators 定义),再往后匹配。若光标卡在 user 的中间字母上,Ctrl+D 可能先选中 us 这个子串,而非整个变量名。
- 操作前务必把光标移到词首或词尾,用
Ctrl+←或Ctrl+→跳转,别靠鼠标点 - 大小写混用时,右下角状态栏点
Case Sensitive关掉,否则User和user不会被同时选中 - 想跳过当前匹配项(比如某处不该改),按
Ctrl+K松开再按Ctrl+D,比连按更可控 - 选中后直接输入,所有匹配位置同步更新;按
Ctrl+U可逐次撤销最近一次Ctrl+D
Ctrl+Shift+L 拆行只在第一行生效?你可能根本没真正选中多行
Ctrl+Shift+L 不是“给当前行加光标”,而是把「已存在的选区」按换行符切片。如果鼠标拖选时没覆盖到行末的 \n 或 \r\n,Sublime 就认为你只选了单行,结果只在第一行末尾放一个光标。
- 安全做法:先按
Ctrl+L(选中当前行),再按住Shift+↓向下扩展行选区,直到覆盖全部目标行 - 若目标行含空行,
Ctrl+Shift+L仍会生成光标,但默认落在行首;想统一到行尾,拆完立刻按End - 开启软换行(
View → Word Wrap)时,视觉行和逻辑行错位,Ctrl+Shift+L可能切错位置,编辑前建议关闭
列选择(矩形选区)粘贴内容错位?剪贴板行数必须对齐光标数
用 Alt+鼠标拖拽(Win/Linux)或 Option+鼠标拖拽(macOS)选中矩形区域后,直接 Ctrl+V 粘贴,Sublime 默认只把剪贴板第一行内容贴到每一列起始位置——这不是 bug,是设计行为。
- 若剪贴板有 5 行内容,且你当前有 5 个光标,用
Ctrl+Shift+V(Paste with Indentation)可尝试对齐,但缩进不一致时仍易错位 - 更可靠的是正则替换:打开
Ctrl+H,勾选Regular Expression,查找^.*$,替换为你要插入的内容(如console.log("$0")) - 列选后想在每行开头加前缀?先按
Home跳到行首,再输入,所有光标同步响应;别用Ctrl+A全选后再删前面——那会破坏列结构
选中到文件尾却只高亮了一行?Shift + Ctrl + End 的触发条件很具体
Shift+Ctrl+End(Win/Linux)或 Shift+Cmd+End(macOS)确实能从光标位置选到文件末尾,但它依赖两个隐含前提:光标不能已在最后一行,且 End 键本身只跳到当前行尾,必须配合 Shift 才激活“跨行范围选择”。
- 若光标已在最后一行,该组合只会选中从当前位置到该行末尾,不是整文件尾——此时应先按
Ctrl+End跳到文件末尾,再按Shift+↑往上扩选 - 选中后执行
Delete,光标停在原起点,不是文件尾;想把内容粘到末尾,得先Ctrl+End再Ctrl+V -
Ctrl+A是全选,不是“到文件尾”;用它再手动删前面部分,反而多一步且易误删
真正容易被忽略的是换行符本身的可见性:Sublime 默认隐藏 \n,但 Ctrl+Shift+L 和 Ctrl+D 都依赖它做切分和匹配。一旦文件混用 \r\n 和 \n,或某行末尾多了不可见空格,多行操作就可能断在奇怪的位置。

















