给定一个由多行 MySQL 查询组成的文件,例如
SELECT foo, bar, etc
FROM blah
WHERE something or other
LIMIT etc
有什么方法可以让我在 Vim 中直观地选择一个查询,将其通过 MySQL 进行管道传输,然后在新缓冲区中查看查询和结果?
澄清:我不想要表格输出,而是可以在 vim 中进一步处理或导入到电子表格中的东西(比如从 mysql --batch 获得的制表符分隔输出) (Ubuntu Linux)。
最佳答案
Dbext
plugin支持这种行为。
可视化选择SQL语句,运行:DBExecRangeSQL
来执行。
结果将返回到当前视口(viewport)底部的新拆分中。
控制输出窗口的选项有很多。请参阅 :help dbext
了解详细信息。
2012 年 5 月 1 日更新
该插件的 15.0 版已发布,内置了此功能。
可以覆盖默认的 -t
标志
默认设置:
let g:dbext_default_MYSQL_extra = '-t'
覆盖批量设置
let g:dbext_default_MYSQL_extra = '--batch --raw'
Dbext 将 -t
选项硬编码到 MySQL,但如果该行从 dbext.vim 中删除,在 DB_MYSQL_execSql(我当前版本)的第 2278 行,您可以通过--batch 和 --raw 选项:
:DBSetOption MYSQL_cmd_options='--batch --raw'
恢复表格输出:
:DBSetOption MYSQL_cmd_options='-t'
我在我的安装上成功地测试了这个。
关于mysql - 我可以从 Vim 视觉选择执行 MySQL 查询并在新缓冲区中输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10125138/