微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

vim:在W11上显示差异(自编辑开始后文件已更改)

一个文件被更改并且我正在处理它时,vim提示我两个选择:

W11: Warning: File "foo.bar" has changed since editing started
See ":help W11" for more info.
[O]K,(L)oad File:

有没有办法让它显示缓冲区内容和磁盘上的内容间的差异?

解决方法

将以下内容放在.vimrc文件中:h:DiffOrig

command DiffOrig vert new | set bt=nofile | r # | 0d_ | diffthis | wincmd p | diffthis

然后当提示命中o为ok时,然后执行:DiffOrig.您将看到差异.

如果您决定要从磁盘执行文件:e!从磁盘重新加载文件.

快速概述:DiffOrig

垂直拆分新缓冲区并从磁盘读入有问题的文件标记要扩散的两个缓冲区.

细节的荣耀:DiffOrig

>:vert {cmd}将执行任何{cmd},任何拆分将垂直拆分.
> new用新缓冲区打开一个新的分区
> set bt = nofile将’buftype’设置为nofile,因此不会将任何文件写入磁盘
> r简称:read {file}. r#将备用文件读入缓冲区,该文件是刚拆分的缓冲区.此替代文件是从磁盘读取的有问题的文件.
> 0d_这是0delete _的缩写.读取替代文件时,在顶部留下一个空行. 0delete _会将顶行删除到黑洞寄存器中,这样就不会与其他寄存器混淆.
> diffthis set buffer to diffed.
> windcmd p切换回上一个窗口.这与正常模式下的< c-w> p相同.
> diffthis这将更改的缓冲区设置为包含在diff集中.

欲获得更多信息:

:h :DiffOrig
:h :e
:h :diff
:h vert
:h new
:h r
:h d
:h "_
:h windcmd
:h diffthis
:h :c_#

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐