編集中に加えられた外部の変更をマージする


10

Vimで編集中のファイルに外部の変更が加えられた場合、私はによってファイルのコンテンツを再読み込みできることを理解しています:edit。しかし、(内部で)保存したいファイルに変更を加えたと仮定します。2つの変更セット(外部と内部)を統合する方法はありますか?私が理解していることから、:edit単に外部の変化を取り入れます。


3
読む必要があり:h autoreadますか?それはあなたが探しているものですか?
statox

2
:autoread外部の変更を読み取りますが、自動的に読み取られているファイルに変更が加えられた場合、vimは、内部編集を行ったため、ファイルの外部で変更が行われたことを通知します。外部の変更を内部の変更とマージする方法を探しています。
fuzzybear3965 2016

5
お探し:h :DiffOrigですか?
Christian Brabandt 2016

@ChristianBrabandt、手遅れになることはありませんよね?これは素晴らしい答えでした。これが存在することを知りませんでした。
fuzzybear3965

回答:


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では、読み取りのオプションを使用し、ファイルを編集する場合と同じようにオプションの値を保持します。

参照:

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.