V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
V2EX  ›  revolyw  ›  全部回复第 1 页 / 共 1 页
回复总数  1
不知道你有没有过这种瞬间——从表格或日志里复制出一长串 ID ,正准备写进 SQL 的 `IN (...)` 字句里,但是面对多行文本,既缺少单引号,还要删换行符,最后还得用逗号隔开。

于是开始:加引号、加逗号、删换行符、再检查有没有漏,有没有空行,一通操作下来真正要做的事情却还没有推进。即便你精通列编辑或正则表达式批量替换,也免不了好几步操作,实在是麻烦!

其实不止写 SQL 。只要「一列变一行」,下面这些场景都挺常见:

## 还能用在哪

- **SQL**:多行主键 / 订单号 → `'id1','id2','id3'`,直接塞进 `IN (...)`
- **类 JSON 字符串数组**:快速拼出 `"a","b","c"`,粘进配置或临时代码
- **CSV / 表格单元格**:一列名字、手机号,转成逗号分隔,粘到表单或后台批量导入框
- **配置与脚本**:多行路径、环境名,拼成 `a;b;c` 或 `a, b, c`,少开一次编辑器
- **日志排查**:从日志里抠出一串 request id ,转成单行,丢进搜索框或工单备注
- **临时名单**:群公告、邮件里的名单,快速变成引号字符串,给接口或测试用例用

我自己受够了手改,就做了个很小的 Alfred Workflow ,专门干这件事:多行变单行,引号和分隔符可以选,也可以自己配。

## 怎么用

1. 复制多行文本(也可以先选中文字,再用热键触发)
2. 唤出 Alfred ,输入 `m2s`(关键词可改)
3. 上下键选一种格式,回车——结果已经在剪贴板里,并会弹出系统通知

比如输入:

```
apple
banana
cherry
```

可选几种常见模式:

- `'apple','banana','cherry'`
- `"apple","banana","cherry"`
- `'apple', 'banana', 'cherry'`
- `"apple", "banana", "cherry"`

也可以不要引号,只要逗号、分号或冒号空格拼接。空白行会自动跳过;有包裹时,行内的引号和反斜杠会做转义,避免拼出来的结果很难用。

## 还能怎么配

打开 Alfred → Workflows → **Multiline to Single** → `[x]`:

- **Keyword**:触发关键词,默认 `m2s`
- **Custom modes**:自定义包裹符 + 分隔符,一行一种;列表顺序就是结果列表顺序
- **UI language**:界面标题可用 English / 中文

热键可选:在 Workflow 里给 Hotkey 绑个快捷键,参数选「 Selection in macOS 」,选中文字就能直接转。

## 你需要

- macOS
- Alfred 4+,并启用 Powerpack
- 系统自带的 `python3`
About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3103 Online   Highest 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 26ms · UTC 14:05 · PVG 22:05 · LAX 07:05 · JFK 10:05
♥ Do have faith in what you're doing.