変更をvimバッファーにパッチファイルとして保存するにはどうすればよいですか?


20

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


2
ViおよびVimの新しいSEベータサイトがあります。ぜひご覧ください。
ロフロ

回答:


20

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

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

%編集中のファイルのパスに置き換えられ、-stdinからバッファーを読み取ります)


2
ダッシュはstdinから読み取られた意味として理解されるdiff -u "%" -ので使用できますdiff
-roaima

1

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

:%! diff -au "%" -

これにより、バッファがディスクに書き込まれるのではなく、差分で埋められます。readonly誤ってオリジナルを上書きしないように設定することもできます(OTOH、ファイルがバージョン管理されているため、深刻な問題になることはありませんか?)。もちろん、逆コマンドを使用すると役立ちます。

:%! patch -o - "%"

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

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