合并编辑时进行的外部更改


10

如果对在Vim中进行编辑的文件进行了外部更改,则我知道可以通过来重新加载文件的内容:edit。但是,假设(内部)我已经更改了要保留的文件。有没有办法整合两组变更(外部变更和内部变更)?据我了解,:edit只需采取外部变化。


3
必须阅读:h autoread?那是您要找的东西吗?
statox

2
:autoread读取外部更改,但是如果对正在自动读取的文件进行更改,则vim会通知我,由于我进行了内部编辑,因此在文件外部进行了更改。我正在寻找一种将外部更改与内部更改合并的方法。
Fuzzybear3965 '16

5
您在找:h :DiffOrig吗?
克里斯汀·布拉班德

@ChristianBrabandt,永远不会太晚吧?这是一个很好的答案。我不知道这是存在的。
Fuzzybear3965 '16

Answers:


3

为了详细说明Christian Brabandt的评论,以下是DiffOrig命令的分解:

完整命令:

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

分解:

command DiffOrig        " create a new command named DiffOrig
vert new                " open a new buffer splitted vertically
| set bt=nofile         " set buffer type to scratch 
| r #                   " read the alternate buffer (opened file to diff)
| 0d_                   " delete the first line
| diffthis              " diff the current buffer
| wincmd p              " move cursor to opened file 
| diffthis              " diff the current buffer

备用版本使用该++edit选项进行读取,它保留选项值,就像编辑文件一样。

参考文献:

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.