在MySQL中使用Vi检索丢失的文件

时间:2012-01-04 19:45:21

标签: mysql vim command-line editor vi

我想知道如何在MySQL中使用Vi检索文件。我使用以下方式登录:

mysql -uuser -p -hserver -A database

然后我这样做:

\e

编辑器打开,我输入200行的查询,然后我:wq\G(如果我将文件保存为/tmp/sql9SbYQZ saved),我会看到结果。< / p>

现在,如果我犯了错误或运行其他查询并尝试再次输入\e,则查询将丢失。

ll /tmp/sql9SbYQZ
ls: /tmp/sql9SbYQZ: No such file or directory

有没有办法检索丢失的文件?

3 个答案:

答案 0 :(得分:30)

这是我添加到.vimrc的内容,以便在出错时保存当前查询。

nmap <F7> :w! /tmp/query.sql\| wq!<CR>

这将创建F7键的映射(当然可以更改它)。因此,每次使用edit\e打开文件时,都可以使用 F7 键进行更改。

这会将当前查询的备份保存到/tmp/query.sql,然后保存并关闭临时文件。这样,如果您犯了错误,只需重新打开备份文件,然后重试。

以下是您可能想要的链接:http://vim.wikia.com/wiki/Open_the_last_edited_file

答案 1 :(得分:1)

使用与mysql,crontab和许多其他人一起使用的vi / m编辑器,工作在tmp文件中完成,正如您从消息中看到的那样。

编辑(Big doah !,删除关于ls -l / tmp / ...的信息,你已经做过了!)

将来解决方案是告诉vim缓冲区w到你选择的文件名,即

 w! /home/you/scripts/mysql2.sql

然后用

关闭编辑器
 q

请注意,w之后可能不需要!

我希望这会有所帮助。

答案 2 :(得分:0)

您可以尝试以下方法:

在Linux中,执行以下操作

$ cd
$ cp .mysql_history mystuff.txt
$ vi mystuff.txt

您应该看到.mysql_history文件。 mysql客户端记录所有执行的查询和命令。希望您的查询在那里。

试一试!!!