20 有没有一种方法可以将对vim缓冲区所做的更改保存为原始文件的补丁文件,而无需将其另存为单独的文件并使用diff? vim diff — 莱斯德里德 source 2 Vi和Vim有一个新的SE beta站点,您可能需要检查一下。 — 罗夫洛2015年
20 使用该w命令可以在没有插件的情况下执行此操作,因此可以在shell命令中使用缓冲区内容: :w !diff -au "%" - > changes.patch (%用正在编辑的文件的路径替换,-从stdin中读取缓冲区) — 莱斯德里德 source 2 您可以使用,diff -u "%" -因为diff — 它将
1 您还可以diff使用以下%!语法过滤缓冲区: :%! diff -au "%" - 这将用差异填充缓冲区,而不是将其写入磁盘。您可能需要进行设置,readonly以免意外破坏原件(OTOH,这不是一个严重的问题,因为您的文件受版本控制,对吗?)。当然,使用反命令会有所帮助: :%! patch -o - "%" 这样会将您的差异转换回修改后的文件。 — 凯文 source