vim 버퍼의 변경 사항을 패치 파일로 저장하려면 어떻게합니까?


20

vim 버퍼에 대한 변경 사항을 별도의 파일로 저장하고 diff를 사용하지 않고 원본 파일의 패치 파일로 저장하는 방법이 있습니까?


2
Vi 및 Vim에 대한 새로운 SE 베타 사이트 가 있습니다. 체크 아웃을 원할 수도 있습니다.
Roflo

답변:


20

w명령을 사용하여 플러그인 없이이 작업을 수행 할 수 있으므로 버퍼 내용을 쉘 명령에 사용할 수 있습니다.

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

( %편집중인 파일의 경로로 대체되고 -stdin에서 버퍼를 읽습니다)


2
stdin에서 읽은 의미로 대시를 이해 하기 diff -u "%" -때문에 사용할 수 있습니다.diff
roaima

1

diff다음 %!구문 을 사용하여 버퍼를 필터링 할 수도 있습니다 .

:%! diff -au "%" -

이것은 버퍼를 디스크에 쓰지 않고 diff로 채 웁니다. 당신은 설정할 수 있습니다 readonly실수로하지 소지품 원본을 할 수 있도록 (당신이 버전 제어에서 파일을 가지고 있기 때문에 OTOH, 즉 심각한 문제가되지 않습니다 맞죠? ). 물론 역 명령을 내리는 데 도움이됩니다.

:%! patch -o - "%"

그러면 diff가 수정 된 파일로 다시 변환됩니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.