ctrl+shift+l(windows/linux)或 cmd+shift+l(macos)是进入列编辑模式的关键操作,可实现多行同步输入;未正确执行会导致仅首行变化,需配合矩形选区与increment selection插件完成结构化测试数据生成。

多光标选中后按 Ctrl+Shift+L 进入列编辑模式
这是生成结构化测试数据最常用也最容易卡住的第一步。很多人以为“多选几行就能改”,结果只改了第一行——因为没进列编辑模式。Ctrl+Shift+L(Windows/Linux)或 Cmd+Shift+L(macOS)才是关键动作,它会把每行的当前光标位置变成独立光标,后续输入才会同步到所有行。
常见错误现象:
- 选中多行后直接打字,只有第一行变化
- 用鼠标拖选时没按住
Ctrl(Windows/Linux)或Cmd(macOS),导致选区是块状而非列状 - 光标不在同一列位置就执行
Ctrl+Shift+L,结果光标散落在各行不同列,后续输入错位
实操建议:
- 先用
Ctrl+Alt+↑/↓或鼠标拖拽时按住Ctrl+Alt竖向拉出矩形选区(即列选择),再按Ctrl+Shift+L - 若已有内容(如
id:),确保列选区域覆盖到要填数字的位置,否则新数字会追加在末尾而非替换 - 列编辑后输入任意字符,所有光标都会同步输出;输入数字后可立即用方向键移动光标继续操作
用 Increment Selection 插件生成自定义起始值 + 步长序列
Sublime 自带的 Insert Enumerated Lines 命令只能从 1 开始、步长为 1、格式固定为 1.,没法满足 user_0001 或 1001, 1003, 1005 这类需求。这时必须用 Increment Selection 插件。
安装后它不自动绑定快捷键,得靠命令面板触发:Ctrl+Shift+P → 输入 Increment Selection → 回车。
注意点:
- 必须是列选择(矩形区域),普通多行选中无效
- 起始值由你手动输入决定:列选后先敲
1001,再执行命令,就会生成1001、1002、1003… - 步长默认为 1,想改成 2?再执行一次
Ctrl+Shift+P→Increment Selection: Set Step→ 输入2 - 如果列里已有文字(比如
ID:),插件会在其后追加数字;要覆盖就得提前清空该列
正则替换补上前缀、零填充和分隔符
Increment Selection 只管数字递增,前缀、零填充、格式控制得靠正则。比如要把 1、2… 变成 user_0001、user_0002,不能靠插件一步到位。
正确做法:
- 先用列编辑填入占位符(如全输
0001),再用Ctrl+H打开替换面板 - 勾选
Regular Expression,查找框填^000(\d+)$,替换框填user_000$1——但这样不行,因为$1没捕获组 - 真正有效的写法是:查找
^(\d+)$,替换user_000$1;前提是列里只有纯数字,且位数一致 - 零填充必须自己写好基础位数(如
0001),再递增,否则1→2→3无法自动补零;Increment Selection不做格式化
更灵活的组合:先用列编辑填入 1、2…,再用正则 ^(\d+)$ → user_ + printf "%04d" $1 ——但 Sublime 不支持 shell 表达式,所以这步只能靠外部脚本或手动补零。
避免在大文件中一次性生成超 500 行测试数据
Sublime 渲染机制对高频 DOM 更新敏感。当你用多光标 + Increment Selection 一次性生成 1000 行带前缀的 ID,编辑器会明显卡顿,甚至无响应。
这不是配置问题,是 Sublime 的文本渲染限制。实测超过 500 行,输入延迟就变得可感知;超过 2000 行,部分版本会崩溃或丢光标。
应对策略:
- 分批生成:每次最多 300–400 行,保存后再继续
- 别在未保存的
Plain text文件里操作——新建文件后先保存为.sql或.json,让语法高亮减轻渲染压力 - 如果目标是插入 1000 条 SQL,优先考虑用 MySQL 函数生成(如
FLOOR(RAND()*1000)),再粘贴进 Sublime 编辑,而不是全靠编辑器生成 - 生成后及时关闭高亮(右下角选
Plain text)能小幅缓解卡顿,但治标不治本
真正容易被忽略的是:多光标操作本身不耗资源,但后续的语法高亮、括号匹配、自动缩进这些后台任务会随着行数指数级加重。关掉无关插件(比如 AutoFileName、Emmet)有时比调优设置更有效。











