多光标操作需严格控制选区与上下文:先全选含换行符的字段列表,用Ctrl+Shift+L拆行光标;再用Alt+拖拽列编辑对齐补全键值对,辅以正则批量加引号冒号,全程注意空格清理、语法模式切换及光标状态管理。

多光标本身不生成字典结构,但能极快地把零散字段数据“对齐→补全→转成键值对”——关键在顺序和选区控制,错一步就全乱。
Ctrl+Shift+L 拆行光标前必须有含换行符的选区
从 MySQL information_schema.columns 导出的字段列表通常是竖排的(每行一个字段名),比如:
user_id username email created_at
想快速转成 Python 字典的 key 形式,不能直接按 Ctrl+Shift+L——它只对已有选区生效,且该选区必须包含换行符。常见错误是只用鼠标点中第一行再按,结果没反应。
- 正确做法:鼠标拖选全部字段(含最后一行末尾的
\n),确保光标落在行尾而非行首 - 如果字段末尾带空格或制表符,
Ctrl+Shift+L后光标会卡在空格后,后续输入会破坏对齐;建议先执行Ctrl+Shift+P→ 输入Trim Trailing White Space清理 - 拆完光标后,所有光标都落在各行末尾,此时按
Home可统一跳到行首,再输入'就能批量加引号开头
列编辑(Alt+拖拽)对齐 value 位置最稳
字段名对齐后,要补冒号、空格、引号、逗号,靠逐行 Ctrl+Click 容易漏行或错位。列编辑才是对齐操作的主力:
- 按住
Alt(Windows/Linux)或Option(macOS),从第一行user_id结尾处垂直向下拖,覆盖所有行相同列位置(比如第12列) - 松开后,所有行在该列同步出现光标,此时输入
: ',就能让所有字段后面统一加上: ' - 注意:如果某行字段特别长(如
user_profile_description),列编辑会自动截断,导致末尾几行没光标——这时得先用Ctrl+D逐个匹配字段名再补,别硬拖
正则 + Find All 是批量加引号/逗号的底线方案
手动加引号容易漏,尤其字段里有单引号或反斜杠时。用正则更可控:
- 按
Ctrl+H打开替换面板,勾选.*(正则模式) - 查找:
^(\w+)$(匹配纯字母数字的整行字段名) - 替换:
'$1': ''(生成'user_id': ''格式) - 点
Find All,不是Replace All—— 这样所有匹配开头都会出现光标,你再手动补逗号或调整 value 内容 - 如果字段含中文或下划线,把正则改成
^([\w\u4e00-\u9fa5]+)$,否则\w不匹配中文
多光标下 Tab 和 Enter 行为和单光标完全不同
一旦进入多光标状态,Tab 不是缩进,而是插入当前语言设定的缩进字符(比如 4 个空格);Enter 也不是换行,而是给每个光标位置都插入一个新行——这在写字典时极易崩格式。
- 补完 key 后想统一加 value,别急着回车,先按
Esc清掉非主光标,留一个光标在第一个 value 位置,用Ctrl+Shift+L重新拆行光标 - 如果已经误按了
Enter,所有行被劈开,别删重来,用Ctrl+U逐次撤销光标添加,直到回到可控状态 - 最终检查:光标是否全落在可编辑区域?Python 字典里字段名若在注释行或字符串内,光标会吸附过去但无法修改内容——得先移出再操作
真正卡住人的不是功能不会用,而是光标生成逻辑和文本上下文耦合太紧:选区边界、换行符类型、空格存在与否、语言语法高亮区域,任意一个偏移都会让 Ctrl+Shift+L 或 Alt+拖拽 失效。动手前先用 Ctrl+Shift+P → Set Syntax: Plain Text 切到纯文本模式,避开语法插件干扰,改完再切回去。

















