Vim初学者:Can';编译并关闭程序后找不到我的源文件

Vim初学者:Can';编译并关闭程序后找不到我的源文件,c,vim,C,Vim,我在linux上用VIM编写了一个程序。我通过键入“:!gcc-o hw%&&&/hw.c”编译并运行它。在关闭vim并返回后,.C文件现在是一堆奇怪的字符(主要是@)和其他东西,我认为这意味着它是一个可执行文件,但是。。问题是,我再也看不到我的源代码了。到底发生了什么事?在哪里可以找到我的源代码?它会永远消失吗 它会永远消失吗 如果是这样的话: 那差不多是的。您似乎编译了源代码,并在原始源文件中输出了二进制文件 如果您需要我的建议,请不要从vim内部执行gcc。避免使用这样的命令::!gcc

我在linux上用VIM编写了一个程序。我通过键入“:!gcc-o hw%&&&/hw.c”编译并运行它。在关闭vim并返回后,.C文件现在是一堆奇怪的字符(主要是@)和其他东西,我认为这意味着它是一个可执行文件,但是。。问题是,我再也看不到我的源代码了。到底发生了什么事?在哪里可以找到我的源代码?它会永远消失吗

它会永远消失吗

如果是这样的话:

那差不多是的。您似乎编译了源代码,并在原始源文件中输出了二进制文件


如果您需要我的建议,请不要从vim内部执行gcc。避免使用这样的命令:
:!gcc-o hw%&/hw.c
。始终保存
:w
(可能会退出),然后从shell中编译。

听起来像是您让
gcc
将源代码编译成一个与包含所述源代码的文件同名的文件,这将覆盖您的源文件。如果您确实键入了
:!gcc-o hw%&&&/hw.c
并且您正在编辑的文件是
hw.c
,那么(a)编译应该没有造成损坏,(b)运行
/hw.c
应该失败;您希望运行刚刚创建的
/hw
,而不是编译源代码。然而,如果你不知何故弄错了,很有可能你被用水管冲洗;源代码可能会永远丢失,除非您使用VCS来管理它(在这种情况下,您可以从VCS中的最后一个版本恢复,但此后所做的任何更改都可能丢失)。是的,它是这样的:从现在开始,我将从shell中执行。谢谢@user2997154将来,针对这种情况的另一种预防措施是使用修订控制软件,如mercurial和git。。