2012-01-04 61 views
13

我想知道如何检索MySQL中使用vi的文件。我登录使用:检索用vi丢失的文件在MySQL

mysql -uuser -p -hserver -A database 

然后我做的:

\e 

编辑器打开,我型我的200行查询,然后我:wq\G(如果我保存文件时,它说:/tmp/sql9SbYQZ saved ),我看到了结果。现在

,如果我犯了一个错误或运行不同的查询,我再次尝试键入\e,查询丢失。

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

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

回答

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

0

下面是一些你可以尝试:

在Linux中,请执行下列操作

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

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

试试吧!

1

与MySQL的,crontab中,和其他许多人使用的VI/M编辑器,工作在tmp文件进行,因为你从你的邮件看到的。

编辑(大doah!,删除有关LS克鲁夫特-l/tmp目录/ ......,你已经做到了!)

在未来的解决方法是告诉vimw缓冲到提交您艇员选拔的名字,即

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

然后用

q 

注意您可能不东东关闭编辑器在w之后的!

我希望这会有所帮助。