Ctrl+Shift+L后光标默认落在每行换行符前(即视觉行尾),但非语义内容末尾;若行尾含空格、Tab或BOM,直接输入会导致格式错乱,需先清理尾部空白或改用$正则替换追加。

Ctrl+Shift+L 后光标默认落在行尾,但不等于“安全追加”
按 Ctrl+Shift+L(Windows/Linux)或 Cmd+Shift+L(macOS)后,光标确实停在每行换行符前——也就是视觉上的“行尾”。但这只是位置,不是语义上的“内容末尾”。如果某行末尾有空格、制表符或不可见 BOM,End 键会停在它们前面,你输入的内容就会插在空白和换行符之间,导致格式错乱。
- 先确认是否真正在“内容之后”:打开
View → Draw White Space,看清每行结尾是否有·(空格)或→(Tab) - 若存在尾部空白,建议先用正则替换
\s*$→ 空(清空行尾空白),再执行多光标追加 - UTF-8-BOM 文件中,
Home/End行为可能异常;可先File → Save with Encoding → UTF-8去除 BOM
用 $ 正则替换追加最稳,但别踩 \n 和匹配模式坑
批量追加的可靠方式是 Ctrl+H 打开替换面板,启用正则(点右下角 .*),查找 $,替换为你想加的内容(如 ;)。$ 匹配的是“换行符之前的位置”,不消耗字符,所以原有文本 100% 保留。
- 务必关闭左下角的
\n按钮(Match newline)——一旦勾选,$就不再匹配常规行尾 - 最后一行没换行符时,
$依然生效;但若文件末尾多了一个空行,$也会匹配它,造成意外插入 - 不要在替换框写
;\n:这会把所有行连成一行;$已隐含换行结构,直接填;即可
列选择(Alt+拖拽)适合对齐文本,但不适用于逻辑行尾
按住 Alt(Windows/Linux)或 Option(macOS),从第一行末尾垂直向下拖动,能快速在“同一列位置”插入多个光标。但它依赖视觉对齐,不是语义对齐。
- 适用于固定列宽的表格、日志、CSV 等;若各行长度差异大,拖到的列可能落在中间甚至开头
- 若某行被缩进(比如代码块里),该行“末尾列”实际远在右侧,拖拽容易偏移
- 无法自动跳过空行——空行没字符,列选择会失败;而
$正则仍能匹配空行行尾
Ctrl+Click 手动加光标看似慢,反而是最可控的方式
对少量不规则行(比如只改第2、第5、第9行),Ctrl+Click(Windows/Linux)或 Cmd+Click(macOS)逐个点击行尾,比折腾选区更直接。
- 点击前先按
End,确保光标真正在该行末尾,避免点在缩进或空白上 - 点错一个?按
Esc清空所有光标重来;多光标是临时状态,不是持久模式 - 配合
Ctrl+Shift+P输入Move to Hard EOL(需 Sublime Text 4 或安装插件),可强制跳到物理行尾,绕过缩进干扰
; 插进空格堆里,或者覆盖掉原本的注释。动手前花十秒看清空白和编码,比反复 Undo 快得多。

















