Làm cách nào để lưu dưới dạng tệp mới và tiếp tục làm việc trên tệp gốc trong Vim?


362

Bất cứ khi nào tôi sử dụng :savlệnh, nó sẽ lưu tệp với một tên mới và mở tệp mới mở trong Vim.

Có thể lưu tệp với một tên mới nhưng vẫn giữ nguyên bản gốc để chỉnh sửa?


13
Tôi đến với câu hỏi ngược lại.
hẹn hò

4
@cambezious Tôi cũng vậy. Tôi đã googling vim "save as"và câu hỏi này đã dạy tôi rằng có một cách :saveashoạt động như tôi mong đợi: lưu tệp hiện có với một tên mới và mở tệp mới.
Jacktose

Câu trả lời:


526

Sử dụng :wlệnh với tên tệp:

:w other_filename

78
Hơn nữa, sử dụng :w %:h/other_filenameđể ghi vào một tên tệp trong cùng thư mục với tệp đang mở.
loevborg

2
@Ioevborg khi đó không phải là trường hợp? Tôi chỉ: w fname mà không đọc bình luận của bạn và hành vi dường như là mặc định.
Blake

10
@ Cokemonkey11 Đây không phải là hành vi mặc định trong vim để có vị trí của tệp hiện tại giống với thư mục làm việc. Bạn có thể có một cái gì đó trong tệp vimrc của bạn đang làm điều này cho bạn. Một số thông tin khác có thể được tìm thấy ở đây vim.wikia.com/wiki/set_usiness_directory_to_the_cản_file
Derek

8
Tôi chỉ xác nhận rằng không có "%: h /", tệp sẽ được lưu trong thư mục bạn đang ở khi bạn mở vim, không phải nơi tệp gốc là ....
RVC

7
Nó có thể hữu ích đề cập rằng :w other_filenamesẽ ghi dữ liệu vào other_filename chỉ và không phải là file hiện hành.
Ram Patra

270

Cảm ơn câu trả lời. Bây giờ tôi biết rằng có hai cách "TIẾT KIỆM" trong Vim.

Giả sử rằng tôi đang chỉnh sửa hello.txt.

  • : w world.txt sẽ ghi nội dung của hello.txt vào tệp world.txt trong khi vẫn giữ hello.txt làm bộ đệm đã mở trong vim.
  • : sav world.txt trước tiên sẽ ghi nội dung của hello.txt vào tệp world.txt, sau đó đóng bộ đệm hello.txt, cuối cùng mở world.txt làm bộ đệm hiện tại.

27
:savSẽ không đóng bộ đệm ban đầu, nó sẽ ẩn nó. Theo mặc định, bộ đệm ẩn được tải, nhưng điều này có thể được ghi đè (với các tùy chọn 'ẩn' hoặc 'bufhidden').
ZyX

7
Vì vậy, yeah ... :savgần với "Lưu như" tôi đã biết.
skytreader

8
Từ sự giúp đỡ của Vim: :sav[eas][!] [++opt] {file}Vì vậy, :sav rút ngắn cho :saveas. Trong khi đó, :wlà lối tắt cho :[range]w[rite][!] [++opt] {file}. Và tất cả mọi thứ là trong hướng dẫn, chỉ vài dòng trên / dưới.
Vào

23

Sau khi lưu tập tin mới, nhấn

Ctrl-6

Đây là lối tắt đến tập tin thay thế


2
Để biết giá trị của nó, sử dụng nvim 0.1.0 trong OS X 10.10.5, điều này đòi hỏi SHIFT-CTRL-6.
Aaron Mendez

shift-ctrl-6 trên phiên bản Homimrew của Vim trên OS X 11.
Mateusz Piotrowski

3

Lệnh sau sẽ tạo một bản sao trong một cửa sổ mới. Vì vậy, bạn có thể tiếp tục xem cả tệp gốc và tệp mới.

:w {newfilename} | sp #
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.