调用文本编辑器从 sqlite3 CLI 中编辑查询?

Ste*_*tew 7 sqlite psql

在 psql 中,我可以键入 \e\edit开始在 Vim(或其他配置的文本编辑器)中编辑当前查询缓冲区。

使用 sqlite3 CLI 是否有类似的功能?

dcc*_*310 1

那样就好了!您的问题特别询问当前的查询缓冲区,我发现它在psql. sqlite 中针对新查询的半解决方案可能是:.shell vim foo.sql随后.read foo.sql执行它。

或者,例如,如果您使用箭头键浏览历史记录,则可以在该行前面加上 前缀.shell echo "old query here" > foo.sql,尽管您可能会遇到一些引用问题。(然后.shell vim foo.sql

更简单的方法可能是:.trace foo.sql,它应该将所有查询记录到该文件中。您可以从历史记录中运行查询来填充该文件,如果速度太慢,可能会中止该命令。似乎该日志记录有一些缓冲,因此.trace off似乎将其刷新到文件中,或者.quit也会。

编辑:其中一个缺点是,.read似乎没有将查询放入历史记录中,而只是将查询.read本身放入历史记录中。因此,您必须记住将查询放入哪个文件才能再次查看它,而不是查看 sqlite 命令历史记录。