Як зберегти як новий файл і продовжувати працювати над оригінальним у Vim?


362

Щоразу, коли я використовую :savкоманду, вона зберігає файл з новим іменем і відкриває новий файл, відкритий у Vim.

Чи можливо зберегти файл з новим іменем, але зберегти оригінальний для редагування?


13
Я прийшов із протилежним питанням.
камбунґваційний

4
@cambunstiti і мене теж. Я гуглив, vim "save as"і це запитання навчило мене, що існує :saveasте, що працює так, як я і очікував: зберігає існуючий файл з новим іменем та відкриває новий файл.
Джектоз

Відповіді:


526

Використовуйте :wкоманду з назвою файлу:

:w other_filename

78
Крім того, використовуйте :w %:h/other_filenameдля запису до імені файлу в той же каталог, що і відкритий файл.
loevborg

2
@Ioevborg, коли це не так? Я просто: w fname, не читаючи ваш коментар, і поведінка, здається, є типовою.
Блейк

10
@ Cokemonkey11 Це не типова поведінка у vim, щоб розташування поточного файлу було таким же, як робочий каталог. Напевно, у вашому файлі vimrc є щось, що робить це для вас. Дещо більше інформації можна знайти тут vim.wikia.com/wiki/Set_working_directory_to_the_current_file
Дерек

8
Я щойно підтвердив, що без "%: h /" файл буде збережений у каталозі, в якому ви знаходилися, коли ви відкрили vim, а не там, де був оригінальний файл ....
RVC,

7
Може бути корисним згадати, що :w other_filenameбуде записувати дані other_filename лише в поточний файл, а не в нього.
Рам Патра

270

Дякую за відповіді. Тепер я знаю, що у Vim є два способи "ЗБЕРЕГТИ ЯК".

Передбачається, що я редагую hello.txt.

  • : w world.txt запише вміст hello.txt у файл world.txt, зберігаючи hello.txt як відкритий буфер в vim.
  • : sav world.txt спочатку запише вміст hello.txt у файл world.txt, потім закриє буфер hello.txt, нарешті відкриє world.txt як поточний буфер.

27
:savне закриє початковий буфер, він приховає його. За замовчуванням приховані буфери вивантажуються, але це може бути скасовано (за допомогою параметрів "прихований" або "помилок").
ZyX

7
Отже, так ... :savближче до відомості "Зберегти як".
skytreader

8
З допомоги Віма: :sav[eas][!] [++opt] {file}Отже, :sav це коротший за :saveas. Тоді :wяк це ярлик для :[range]w[rite][!] [++opt] {file}. І все в посібнику, лише кілька рядків вгору / внизу.
Atcold


3

Наступна команда створить копію в новому вікні. Таким чином, ви можете продовжувати бачити як оригінальний, так і новий файл.

:w {newfilename} | sp #
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.