sublime多光标需禁用drag_text、正确使用ctrl+shift+l切行、正则find all触发编辑态、避坑列选与unicode对齐问题。

Ctrl+Click 添加光标前先关掉 drag_text
Sublime 的 Ctrl+Click(Windows/Linux)或 Cmd+Click(macOS)本该在任意位置点出新光标,但很多人点了却拖动了文本——这是因为用户设置里 drag_text 默认为 true。必须手动设为 false 才能正常触发多光标。打开 Preferences → Settings,在右侧用户配置中加一行:"drag_text": false。改完不用重启,立刻生效。
常见错误现象:鼠标点击后文本被拖走、光标没出现、松手就选中一大片。这不是快捷键失效,而是配置冲突。
用 Ctrl+Shift+L 拆行光标时,选区必须含换行符
Ctrl+Shift+L 不是“开启多行编辑”,而是把已有选区按换行符切片,每行末尾放一个光标。它对空选区、单行选区、末尾没换行的选区完全静默——按了也没反应。
- 安全做法:先用
Ctrl+L连续多按几次选中多行(每按一次选中一行),再按Ctrl+Shift+L,100% 生效 - 如果某行结尾有空格或
\t,光标会落在空格后,容易误删;建议先执行Ctrl+Shift+P → Trim Trailing White Space - 混合换行符(
\r\n和\n)不影响它工作,但若某行末尾是\r单独存在,可能被忽略
正则 Find All 后直接进多光标模式
处理日志最常用的是批量替换时间戳、IP、URL 等固定模式字段。打开 Ctrl+H,输入正则如 \d{4}-\d{2}-\d{2}\s+\d{2}:\d{2}:\d{2},勾上 .* 按钮,点 Find All —— 此时每个匹配开头自动带一个光标,不是高亮,是真正可编辑的多光标状态。
关键细节:
- 别点
Replace All,否则跳过光标阶段,直接替换完就没了 - 所有光标同步输入,但不能输入不同内容;想差异化替换,得用捕获组 +
$1语法在替换框里写 - 如果
Find All后没看到光标,检查是否启用了match_whole_word(它会让192.168.1.1匹配失败,因末尾无单词边界)
列选择对齐 JSON 字段要避开引号嵌套
日志里一堆混排 JSON 行,想批量提取或修改 "msg" 字段值?别用鼠标拖选——用 Ctrl+F 查 "msg":,勾上 Find All,再连按两次 Ctrl+Shift+→:第一次跳到冒号后空格,第二次跳到引号结束位置,此时所有 "msg" 值都被精确选中且带光标。
容易踩的坑:
- 直接
Alt+拖动列选,遇到"msg": "he\"llo"这种带转义引号的行,列位置会错位 - JSON 字段顺序不一致时(有的
"ts"在前,有的在后),列选会跨字段,导致改错内容 - Sublime 对 Unicode 字符(如中文)列宽计算不准,等宽字体下也建议优先用
Find All + 扩展选择而非纯列拖
Esc、方向键、Ctrl+X 都会清空非主光标——处理日志时一旦发现光标突然只剩一个,八成是误按了这些键。











