列选择需按alt(win/linux)或cmd(macos)后鼠标垂直拖拽,非shift+拖动;启用后状态栏显示“column select”,方可跨行对齐编辑。

列选择怎么打出来?别用鼠标拖
Sublime 的列选择(Column Selection)不是靠 Shift+鼠标拖动实现的,那是普通文本选择,无法跨行对齐。真正生效的是按住 Alt(Windows/Linux)或 Cmd(macOS),再用鼠标从第一行目标列拖到最后一行对应位置——松手后,所有行该列范围被同时选中。
容易踩的坑:
- Shift+鼠标拖动只会生成连续文本选区,后续输入会覆盖整段,不是并行编辑
- 如果文件是大日志且已卡顿,先切到
Plain Text模式再操作,否则语法高亮插件可能拦截列选响应 - 列选对齐精度依赖字体等宽,非等宽字体(如某些中文混合环境)会导致错位,临时切回
Consolas或Monaco更稳
怎么用列选择提取时间戳并排序?
日志里时间戳通常固定在每行开头(如 2024-05-12 14:22:03),但原始顺序混乱。列选择是轻量提取的关键一步:
- 先确认时间戳起始位置(比如第 1–20 字符),按住
Alt(Win/Linux)或Cmd(macOS),鼠标从首行第 1 列拖到末行第 20 列 - 松手后按
Ctrl+X剪切,粘贴到新标签页,此时只剩纯时间字符串 - 全选新页内容 →
Ctrl+Shift+P→ 输入Sort Lines→ 回车,就能得到严格按字典序排好的时间序列 - 注意:
Sort Lines对2024-05-12 14:22:03这类格式天然有效,不需要额外正则预处理
列选择 + 多光标怎么批量清理字段?
当你要统一删掉每行固定位置的 IP、状态码或 trace_id,列选择配合多光标比正则更可控:
- 用列选择框出所有要删的字段(比如每行第 30–45 字符的
192.168.1.105) - 按
Ctrl+Shift+L(Win/Linux)或Cmd+Shift+L(macOS),把每个列选块转成独立光标 - 按
Delete或Backspace,所有位置同步清除 - 比正则安全:不会误匹配 URL 中的 IP、版本号或注释里的数字;也比手动复制粘贴快得多
- 若字段长度不一致(如
10.1.1.1和172.16.254.1),优先用正则\b(?:\d{1,3}\.){3}\d{1,3}\b替换,列选择只适合定宽场景
列选择后粘贴进新文件为啥乱码?
列选择本身不改编码,但粘贴时 Sublime 可能按当前文件编码解释字节流。日志如果是 GBK 编码,而新文件默认 UTF-8,就会出现中文变问号或方块。
- 粘贴前,先新建标签页 →
File → Reopen with Encoding → GBK(或你日志实际编码) - 再粘贴,避免二次解码错误
- 如果列选区域含中文且跨字节(如选中“用户”二字的前一个字节),GBK 下会直接截断导致乱码,此时应改用正则提取整词:
用户:\s*([^\r\n]+) - 大日志建议全程保持
Plain Text模式,禁用所有插件,否则 GitGutter 或 Highlighter 可能在后台偷偷重编码
Find All + 多光标这套组合。关键不是“怎么选”,而是“选什么才值得花力气列选”。











