gpt4 book ai didi

git - 在 VIM 或任何其他方法中将文件与自身进行比较

转载 作者:太空狗 更新时间:2023-10-29 14:31:19 26 4
gpt4 key购买 nike

我有一个文件,我想与它自己进行比较。第一个文件是原始文件,第二个文件是正在开发的文件。一种方法是 git diff,但如果原始文件本身已更改且尚未上演,则无法使用。另一种方法是在文件系统上复制它并使用 diffwatch 命令。由于要创建和删除临时文件,因此效率不高。

因此我想在 VIM 中尝试 dodiff 命令。 VIM 可以将文件作为缓冲区存储在内存中,因此我的问题是我应该怎么做?

请注意,文件不是从 vim 环境中更改的,而是从外部编辑器中更改的。

例子:

  1. file1.txt - 原件
  2. 此内容现在已在 file1.txt 中更改
  3. 在 vim 中加载 file1.txt
  4. 文件内容再次更改
  5. 比较 3 和 4。
  6. 文件内容再次更改
  7. 自动将 3 与 6 进行比较,可能类似于自动刷新。

最佳答案

在 Vim 内部,编辑过的文件被读入内存缓冲区。要在某个时间点创建文件内容的“快照”,您可以创建一个新缓冲区,并将内容从原始缓冲区复制到它,使用 :%yank |新 %.快照 |放| 1delete _ (破坏默认寄存器),或 :let contents = getline(1, '$') |新 %.快照 |通过我的 clone plugin 调用 setline(1, contents)(更长)或更舒适通过 :SCloneAs %.snapshot

使用 :set autoread,原始缓冲区将自动更新以适应在 Vim 之外所做的任何更改。然后,您可以通过 :windo diffthis 比较两个窗口,并使用 :diffupdate 更新差异(如果需要)。

当然你也可以通过:SCloneAs %.snapshot2创建新的快照;通过 :bdelete 删除快照。

关于git - 在 VIM 或任何其他方法中将文件与自身进行比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46216382/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com