vimバッファの変更をパッチファイルとして保存するには?

vimバッファの変更をパッチファイルとして保存するには?

vimバッファに加えた変更を別のファイルとして保存し、diffを使用せずに元のファイルにパッチファイルとして保存する方法はありますか?

答え1

このコマンドを使用すると、プラグインなしでこれを実行できるため、シェルwコマンドでバッファの内容を使用できます。

:w !diff -au "%" - > changes.patch

%編集中のファイルのパスに置き換えられ、-標準入力からバッファを読み取る)

答え2

diff次の構文を使用してバッファをフィルタリングすることもできます%!

:%! diff -au "%" -

readonlyこれにより、ディスクに書き込むのではなく、違いでバッファがいっぱいになります。誤って元のファイルを破損しないように設定する必要があります。 (OTOH、ファイルがバージョン管理対象であるため、深刻な問題ではありません。)正しいですか?)。もちろん、反対のコマンドを使用すると役立ちます。

:%! patch -o - "%"

これにより、diffが変更されたファイルに再変換されます。

関連情報