从psql、I can type、\e或\edit开始在Vim(或其他已配置的文本编辑器)中编辑当前查询缓冲区。是否有使用SQLITE3CLI的类似功能?
\e
\edit
wz1wpwve1#
那就太好了!您的问题特别询问了Current查询缓冲区,我发现它在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命令历史。
psql
.shell vim foo.sql
.read foo.sql
.shell echo "old query here" > foo.sql
.trace foo.sql
.trace off
.quit
.read
1条答案
按热度按时间wz1wpwve1#
那就太好了!您的问题特别询问了Current查询缓冲区,我发现它在
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命令历史。