Sublime列选择可快速在行首插入字符:按Alt/Option键拖选行首构造垂直选区,输入字符即同步添加;行尾添加推荐正则替换($→;)或多光标法(Ctrl+L+End)。

怎么用 Sublime 的列选择快速加行首字符
Sublime 原生支持列编辑,不需要插件就能批量在每行开头插入相同内容。关键不是“自动选中所有行”,而是手动构造一个垂直选区。
常见错误是直接 Ctrl+A 全选后按 Home,结果光标只跳到第一行开头——这不会触发列模式。
- 按住
Alt(Windows/Linux)或Option(macOS),用鼠标从第一行行首拖到最后一行行首(保持垂直对齐) - 松开后出现多个光标,此时输入任意字符(比如
#或/*),就会同步写入所有行首 - 如果行首缩进不齐,先用
Ctrl+Shift+P调出命令面板,输入Indentation: Convert to Spaces统一空格数,再列选更稳
如何给已有代码块统一补行尾符号(比如分号、逗号)
行尾添加比行首难一点,因为不同行长度差异大,列选容易错位。推荐两种可靠方式:
-
正则替换法(最稳):按
Ctrl+H打开替换面板 → 勾选.*(正则模式)→ 查找框填$(代表行尾)→ 替换框填你要加的内容(如;)→ 点击Replace All -
多光标法(适合小范围):先用
Ctrl+L逐行选中目标行(每按一次选中一行),再按End跳到每行末尾 → 此时所有光标都在行尾,直接输入即可
注意:$ 在正则中默认不匹配文件末尾的换行符,所以加上的字符会紧贴原内容,不会多出空行。
为什么 Ctrl+Shift+L 有时不能多行编辑
Ctrl+Shift+L 是“按行拆分选择”的快捷键,但它只对当前已选中的文本生效。很多人误以为它能自动选中所有行。
- 必须先手动选中一段包含多行的文本(哪怕只是选中第一列几个字符),再按
Ctrl+Shift+L,才会把每行拆成独立光标 - 如果选区跨行但中间有空行,
Ctrl+Shift+L会在空行也生成光标,导致误操作;建议提前删掉多余空行或用Ctrl+Shift+P→Sort Lines整理 - Mac 用户注意:系统级快捷键可能冲突,检查
System Preferences → Keyboard → Shortcuts是否占用了Cmd+Shift+L
用正则批量加行首/行尾时要注意哪些边界情况
正则虽然强大,但容易在特殊结构里翻车,尤其遇到注释、字符串、括号嵌套时。
- 加行首(如统一加
//):查找^,替换为//;但^默认只匹配每行开头,不匹配空行——如果想跳过空行,就用^(?=\S)(正向先行断言,确保下一个是非空白字符) - 加行尾(如 JSON 补逗号):查找
(?(负向先行断言:行尾前不是逗号),替换为,,可避免重复加逗号 - 如果文件含 DOS 换行符(
\r\n),$仍能正确匹配,但预览时可能显示异常;建议先用File → Line Endings → Unix统一换行符
^ // 这样写能确保只作用于非空行开头 ^(?=\S)foo
真正麻烦的是混合了单行注释和字符串的代码——正则无法语法感知,这种场景老老实实列选或写 Python 脚本处理更安全。










