Làm cách nào để lưu các thay đổi vào bộ đệm vim của tôi dưới dạng tệp vá?


20

Có cách nào để lưu các thay đổi tôi đã thực hiện vào bộ đệm vim của mình dưới dạng tệp vá cho tệp gốc, mà không lưu dưới dạng tệp riêng biệt và sử dụng diff không?


2
Có một trang web SE beta mới cho Vi và Vim , bạn có thể muốn kiểm tra nó.
Roflo

Câu trả lời:


20

Có thể thực hiện việc này mà không cần plugin bằng wlệnh, vì vậy nội dung bộ đệm có thể được sử dụng trong lệnh shell:

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

( %được thay thế bằng đường dẫn của tệp đang được chỉnh sửa, -đọc bộ đệm từ stdin)


2
Bạn có thể sử dụng diff -u "%" -diffhiểu một dấu gạch ngang có nghĩa là đọc từ stdin
roaima

1

Bạn cũng có thể lọc các đệm thông qua diffbằng cách sử dụng %!cú pháp:

:%! diff -au "%" -

Điều này sẽ lấp đầy bộ đệm với diff, thay vì ghi nó vào đĩa; bạn có thể muốn thiết lập readonlyđể bạn không vô tình ghi lại bản gốc một cách tình cờ (OTOH, đó không phải là vấn đề nghiêm trọng vì bạn có tệp dưới sự kiểm soát phiên bản, phải không? ). Tất nhiên, nó giúp có lệnh nghịch đảo:

:%! patch -o - "%"

Điều đó biến đổi diff của bạn trở lại tập tin sửa đổi.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.