2009-02-18 30 views
6

Tôi làm việc với nhiều tệp từ xa bằng vim và plugin netrw. Tôi cũng giữ bản sao lưu thời gian bằng cách thay đổi số &backupext (được tìm thấy trong số documentation).Tạo bản sao lưu cục bộ khi chỉnh sửa tệp từ xa qua netrw trong vim

Trong khi làm việc trong tệp từ xa (scp: //server//folder/file.txt), tôi nhận thấy rằng khi tôi lưu nó, bản sao lưu thậm chí không được thực hiện.

Có cách nào tôi có thể sao lưu tự động tại địa phương (theo cài đặt sao lưu vim) mỗi lần tôi lưu tệp từ xa không?

+0

Bạn đã thử đặt 'backupdir' thành thư mục cục bộ chưa? –

Trả lời

2

Tôi không nghĩ rằng có một cài đặt đơn giản để chuyển đổi. Bạn có thể thử viết một cái gì đó mặc dù - thêm BufWriteCmd autocommand của riêng bạn để ghi một bản sao lưu. Hãy thử sử dụng set verbose=9 để gỡ lỗi (và để xem netrw hoạt động như thế nào).

1

Đánh giá tốt việc sử dụng giao thức scp của bạn, có vẻ dễ dàng hơn khi bạn sử dụng fuse sshfs, điều này sẽ cho phép bạn có hành vi hệ thống tập tin bình thường sao lưu thay vì chỉ một giao diện CRUD đẩy/kéo .

+0

Phần mở rộng netrw sử dụng scp nội bộ. Tôi đã có may mắn với sshfs. – matpie

+0

Bạn có thể đăng cấu hình hiện tại của mình không? Ngoài ra, hãy kiểm tra http://vimdoc.sourceforge.net/htmldoc/options.html#'secure ', bạn cũng có thể không an toàn bất kỳ tùy chọn sandbox nào, ít nhất cho đến khi bạn nhận được bản sao lưu của mình. – RandomNickName42

2

Tôi đã từng vật lộn với một biến thể của vấn đề này: lưu giữ các thay đổi cục bộ về những thay đổi mà tôi đã thực hiện cho một cây nguồn trên đơn máy từ xa.

Tôi duy trì bản sao cục bộ của toàn bộ cây nguồn và kho lưu trữ svn cục bộ để phiên bản tệp. Thay vì sử dụng netrw và tìm cách lưu các bản sao lưu cục bộ, tôi đã chỉnh sửa tất cả mọi thứ cục bộ và cần một cách để tự động truyền các thay đổi của mình cho máy từ xa.

giải pháp 1: sử dụng BufWritePost Autocommand để gọi scp để sao chép tệp sau khi được ghi. Điều này có thể hoạt động hiệu quả nếu hệ thống cho phép các quá trình chia sẻ các bộ mô tả tập tin, vì nó có thể chạy một phiên ssh chính đến máy từ xa và chia sẻ kết nối cho các phiên tiếp theo. Nếu bạn kém may mắn hơn (lúc đó tôi đang làm việc trên một máy tính cửa sổ), thời gian để thương lượng một kết nối mới cho mỗi tệp có thể gây đau đớn

giải pháp 2: cho cửa sổ, sử dụng WinSCP, có " giữ chế độ cập nhật máy từ xa, trong đó nó giám sát một thư mục và tất cả các thư mục con của nó để thay đổi và sau đó tự động truyền các thay đổi, đưa ra một bộ quy tắc (mẫu để bỏ qua, chế độ truyền cho các loại tệp khác nhau, v.v.).

0

Plugin netrw hoàn toàn bỏ qua lệnh :write, cách duy nhất để lấy lại chức năng 'sao lưu' là tự mình thực hiện bằng cách sử dụng tự động.

0

Tôi nhận ra đó không phải là câu trả lời trực tiếp cho câu hỏi ban đầu - tuy nhiên, những gì bạn đang làm có vẻ giống như VCS-in-ngụy trang - vậy có lý do tại sao bạn không tạo các tệp từ xa. một kho lưu trữ git, sau đó sao chép kho lưu trữ cục bộ đó và đẩy các thay đổi sau khi chỉnh sửa?

Các vấn đề liên quan