Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何突出显示自上次在Vim中保存文件以来更改的行?_Vim - Fatal编程技术网

如何突出显示自上次在Vim中保存文件以来更改的行?

如何突出显示自上次在Vim中保存文件以来更改的行?,vim,Vim,是否可以让Vim突出显示自上次保存以来更改的行?我知道它可以通过版本控制来完成,但是它可以不用版本控制来完成吗?我不想使用任何版本控制系统,因为我处理的代码没有版本控制系统 我认为,UltraEdit有类似的功能。如果您在源文件中使用CVS、Git或Subversion,那么此插件脚本将满足您的需要: 从一个不同的临时文件(如果它还没有这个选项的话)让它工作可能不会太困难。您需要一个临时文件来比较,我不确定Vim是否有一个(它有一个.swp文件,但我不知道如何利用它) 无论如何,一种(奇怪的)可

是否可以让Vim突出显示自上次保存以来更改的行?我知道它可以通过版本控制来完成,但是它可以不用版本控制来完成吗?我不想使用任何版本控制系统,因为我处理的代码没有版本控制系统


我认为,UltraEdit有类似的功能。

如果您在源文件中使用CVS、Git或Subversion,那么此插件脚本将满足您的需要:


从一个不同的临时文件(如果它还没有这个选项的话)让它工作可能不会太困难。

您需要一个临时文件来比较,我不确定Vim是否有一个(它有一个.swp文件,但我不知道如何利用它)

无论如何,一种(奇怪的)可能性可能是使用泛型并编写一个命令行脚本,在当前文件和.tmp版本的文件之间执行差异。您还应该映射一个为当前版本保存.tmp文件的命令,每次保存时可能会自动调用。

直接从Vim(请参见
:help:DiffOrig
):

if!存在(“:DiffOrig”)
命令DiffOrig vert new | set bt=nofile | r#| 0d | diffthis
\| wincmd p | diffthis
恩迪夫
然后就做
:DiffOrig
等瞧

来自:

键入
:changes
以显示发生更改的行


使用
g
g,
跳转到已更改的行。

听起来您正试图使vim成为版本控制系统,因此实际上您正试图添加VCS。为什么不使用为这项任务设计的工具呢?虽然我对你的问题给出了更直接的答案,但我必须同意威廉·珀塞尔的观点,即使用VCS会有很多话要说,即使它只是一个将存储库保存在项目工作文件夹(如bazaar、mercurial或git)本地的工具。没有需要设置的服务器,它为您提供了一个非常宝贵的撤销功能,超出了任何编辑器都可以完成的功能。不过这只是我的观点……我的大多数其他项目都有svn,我知道它有多重要,但不是这个特别的项目。我不想为某些文件设置存储库。人工智能的答案是“只需要我需要”。在编辑器中集成一层轻VCS会有所帮助,因为它可以防止您切换到终端或其他程序只是为了查看更改的摘要。这是一个工作流优化功能。使用
:diffoff
再次关闭此功能。已经有一些关于堆栈溢出的讨论,例如。