Как сохранить как новый файл и продолжить работу с исходным в Vim?

Каждый раз, когда я использую команду :sav, она сохраняет файл с новым именем и открывает новый файл, открытый в Vim.

Можно ли сохранить файл с новым именем, но оставить исходное открытым для редактирования?


person vimguy    schedule 12.02.2011    source источник
comment
Я пришел с противоположным вопросом.   -  person cambunctious    schedule 13.01.2017
comment
@cambunctious Я тоже. Я искал vim "save as" в Google, и этот вопрос научил меня, что есть :saveas, который работает так, как я ожидал: сохраняет существующий файл с новым именем и открывает новый файл.   -  person Jacktose    schedule 29.03.2019


Ответы (4)


Используйте команду :w с именем файла:

:w other_filename
person wilhelmtell    schedule 12.02.2011
comment
Кроме того, используйте :w %:h/other_filename для записи имени файла в том же каталоге, что и открытый файл. - person loevborg; 21.11.2013
comment
@Ioevborg, а когда это не так? Я просто: w fname, не читая ваш комментарий, и поведение кажется стандартным. - person Blake; 12.10.2014
comment
@ Cokemonkey11 Это не поведение по умолчанию в vim, когда местоположение текущего файла совпадает с рабочим каталогом. У вас, вероятно, есть что-то в вашем файле vimrc, которое делает это за вас. Дополнительную информацию можно найти здесь, vim.wikia.com/wiki/Set_working_directory_to_the_current_file - person Derek; 08.01.2015
comment
Я только что подтвердил, что без%: h / файл будет сохранен в каталоге, в котором вы были при открытии vim, а не в том месте, где был исходный файл .... - person RVC; 24.06.2016
comment
Может быть полезно упомянуть, что :w other_filename будет записывать данные в other_filename только, а не в текущий файл. - person Ram Patra; 03.01.2017
comment
Вы можете увидеть, где vim сохранит по умолчанию с помощью :pwd, и вы можете изменить это с помощью :cd path - person cambunctious; 29.03.2019
comment
Комментарий @loevborg близок, но мне не подходит. Я должен использовать :w %:p:h/other_filename. - person mplwork; 14.08.2019
comment
@loevborg или :w %<Tab>, чтобы развернуть текущее имя, затем отредактируйте его - person mykhal; 07.06.2020

Спасибо за ответы. Теперь я знаю, что в Vim есть два способа «СОХРАНИТЬ КАК».

Предположил, что редактирую hello.txt.

  • : w world.txt запишет содержимое hello.txt в файл world.txt, сохраняя hello.txt в качестве открытого буфера в vim.
  • : sav world.txt сначала запишет содержимое hello.txt в файл world.txt, затем закроет буфер hello.txt и, наконец, откроет world.txt в качестве текущего буфера.
person Jianwen W.    schedule 29.03.2012
comment
:sav не закроет начальный буфер, а скроет его. По умолчанию скрытые буферы выгружаются, но это можно изменить (с помощью параметров «скрытый» или «скрытый»). - person ZyX; 30.03.2012
comment
Итак, да ... _ 1_ ближе к сохранению, как я знал. - person skytreader; 05.05.2014
comment
Из справки Vim: :sav[eas][!] [++opt] {file} Итак, :sav является сокращением для :saveas. Принимая во внимание, что :w - это ярлык для :[range]w[rite][!] [++opt] {file}. И все в инструкции, всего несколько строк вверху / внизу. - person Atcold; 20.10.2014

После сохранения нового файла нажмите

Ctrl-6

Это ярлык для альтернативного файла

person SergioAraujo    schedule 13.02.2011
comment
Как бы то ни было, при использовании nvim 0.1.0 под OS X 10.10.5 для этого требуется SHIFT-CTRL-6. - person Aaron Mendez; 15.11.2015
comment
shift-ctrl-6 в Homebrew версии Vim для OS X 11. - person Mateusz Piotrowski; 23.01.2016

Следующая команда создаст копию в новом окне. Таким образом, вы можете продолжать видеть как исходный файл, так и новый файл.

:w {newfilename} | sp #
person tivn    schedule 17.04.2018