我可以在Vim视觉选择中执行MySQL查询,并在新缓冲区中输出

Ken*_*Ken 7 mysql linux vim

给定一个由多行MySQL查询组成的文件,例如

SELECT foo, bar, etc
FROM blah
WHERE something or other
LIMIT etc
Run Code Online (Sandbox Code Playgroud)

有什么办法可以在Vim中直观地选择一个查询,通过MySQL管道,然后查看查询并得到一个新的缓冲区?

澄清:我不想要表格输出,但可以在vim中进一步处理或导入电子表格(如从mysql --batch获得的制表符分隔输出)(Ubuntu Linux).

Mic*_*ski 20

Dbext插件支持此行为.

以可视方式选择SQL语句,然后运行:DBExecRangeSQL以执行它.

结果将返回到当前视口底部的新拆分.

控制输出窗口有很多很多选项.看看:help dbext光荣的细节.

dbext示例输出

更新1.May.2012

该插件的15.0版本已内置此功能.

-t可以覆盖默认标志

默认设置:

let g:dbext_default_MYSQL_extra = '-t'
Run Code Online (Sandbox Code Playgroud)

已批量进行批量设置

let g:dbext_default_MYSQL_extra = '--batch --raw'
Run Code Online (Sandbox Code Playgroud)

Dbext -t对MySQL 的选项进行硬编码,但如果从dbext.vim中删除该行,则在DB_MYSQL_execSql(我当前版本)的第2278行中,您可以传递--batch和--raw选项:

:DBSetOption MYSQL_cmd_options='--batch --raw'
Run Code Online (Sandbox Code Playgroud)

要恢复表格输出:

:DBSetOption MYSQL_cmd_options='-t'
Run Code Online (Sandbox Code Playgroud)

我在安装时成功测试了这个.

  • @Ken这整个星期一直困扰着我,而且我的赏金代表觉得不合时宜.我刚给维护者发送了一个补丁来添加`MYSQL_batch_output`(`--batch`)和`MYSQL_raw_output`(`--batch --raw`)选项(`1 | 0`,默认为0). (2认同)