Sublime Text 批量生成文本依赖多光标或正则替换实现重复输入,非凭空生成;最稳方式是Ctrl+Shift+L拆行后同步输入,需先确保每行有独立光标再操作。

Sublime Text 本身不提供“批量生成文本”的内置命令,所谓批量生成,本质是用多光标或正则触发重复输入动作——不是凭空造数据,而是靠你控制光标位置+输入内容来实现可预测的重复输出。
Ctrl+Shift+L 拆行后直接输入是最稳的生成方式
这是最可控、零正则、适合几十行以内的实操路径。关键不是“选中”,而是让 Sublime 显示多个独立光标点(每行一个竖线),之后任何输入都会同步落到每个光标位置。
- 先用
Ctrl+L(Windows/Linux)或Cmd+L(macOS)逐行选中目标行;或鼠标拖选多行(哪怕只选中每行第一个字符) - 立刻按
Ctrl+Shift+L(Win/Linux)或Cmd+Shift+L(macOS)——此时每行末尾出现独立光标 - 按
←(左箭头)一次:所有光标跳到行首(注意:Home在有缩进时会停在缩进起点,←更可靠) - 直接输入你要生成的内容,比如
console.log(或-,所有行同步写出
常见翻车点:Ctrl+A 全选后再按 Home,只会把第一个光标移到行首,其余光标不动;必须用 Ctrl+Shift+L 触发多光标状态后再移动。
用正则替换生成带序号或变量的文本
当需要生成带递增数字、固定格式字段(如 item_1、field2)时,纯多光标做不到,得靠正则 + Ctrl+H 替换。但 Sublime 原生不支持动态计数,需配合插件或手动构造。
- 简单场景(如每行开头加编号):先用
Ctrl+Shift+P输入Selection: Select Line选中全部目标行,再Ctrl+Shift+L→←→ 输入1.,然后手动改第二行为2.,第三行为3.……不推荐超过 10 行 - 真要自动编号:装插件
Text Pastry,选中 N 行后按Ctrl+Shift+P→Text Pastry: Insert Numbers,填起始值和步长即可生成1、2、3 - 生成固定结构(如
key: value):用查找^$(空行)→ 替换为name:,就能批量“生成”新键值对行
注意:$ 在替换中只是字面量,不会自动递增;别指望 ^$ 替换能生成带逻辑的内容——它只负责“补空行”,不负责“算逻辑”。
列选择(Column Selection)适合对齐生成,但极易错位
当你面对的是严格对齐的文本(如 CSV、日志时间戳、等宽表格),且想在某一列统一插入相同字符(比如第 10 列全填 X),列选择比多光标更准。
- 按住
Alt(Win/Linux)或Option(macOS),鼠标从第一行目标列位置向下拖出竖直矩形区域 - 松手后,所有被框中的列位置出现光标,输入即批量插入
- 必须确保文件用空格而非 Tab 对齐;若含 Tab,
Tab宽度不一致会导致列偏移 - 空行会被跳过,不参与列选择;软换行(
View → Word Wrap开启时)会让列选择完全失效
误用后果明显:想在每行末尾加 ; 却用列选择,结果字符插在中间某列,看起来像错位拼图——因为“行尾”不是固定列,而是动态位置。
真正难的不是“怎么输”,而是“怎么定义起点”。几十行以内,Ctrl+Shift+L + 方向键最快;上百行且需条件(如“只在非空行生成”),就得切正则或插件;而所有方法都绕不开一个事实:Sublime 不生成逻辑,只执行你指定的位置动作——你得先想清楚光标该落在哪,它才肯帮你敲字。

















