Comment enregistrer en tant que nouveau fichier et continuer à travailler sur l'original dans Vim?

362

Chaque fois que j'utilise la :savcommande, il enregistre le fichier sous un nouveau nom et ouvre le nouveau fichier ouvert dans Vim.

Est-il possible d'enregistrer le fichier sous un nouveau nom mais de conserver l'original ouvert pour le modifier?

vimguy
la source
13
Je suis venu avec la question opposée.
2017
4
@cambunctious Moi aussi. J'étais sur Google vim "save as"et cette question m'a appris qu'il y en a un :saveasqui fonctionne comme je m'y attendais: enregistre le fichier existant sous un nouveau nom et ouvre le nouveau fichier.
Jacktose

Réponses:

526

Utilisez la :wcommande avec un nom de fichier:

:w other_filename
wilhelmtell
la source
78
De plus, utilisez :w %:h/other_filenamepour écrire dans un nom de fichier dans le même répertoire que le fichier ouvert.
loevborg
2
@Ioevborg quand n'est-ce pas le cas? Je viens de: w fname sans lire votre commentaire et le comportement semble être celui par défaut.
Blake
10
@ Cokemonkey11 Ce n'est pas le comportement par défaut dans vim que l'emplacement du fichier actuel soit le même que le répertoire de travail. Vous avez probablement quelque chose dans votre fichier vimrc qui fait cela pour vous. Plus d'informations peuvent être trouvées ici vim.wikia.com/wiki/Set_working_directory_to_the_current_file
Derek
8
Je viens de confirmer que sans le "%: h /", le fichier sera enregistré dans le répertoire dans lequel vous vous trouviez lorsque vous avez ouvert vim, pas là où se trouvait le fichier d'origine ....
RVC
7
Il peut être utile de mentionner que :w other_filenameles données seront écrites other_filename uniquement et non le fichier actuel.
Ram Patra
270

Merci pour les réponses. Maintenant, je sais qu'il existe deux façons de "ENREGISTRER SOUS" dans Vim.

Supposons que j'édite hello.txt.

  • : w world.txt écrira le contenu de hello.txt dans le fichier world.txt tout en gardant hello.txt comme tampon ouvert dans vim.
  • : sav world.txt écrira d'abord le contenu de hello.txt dans le fichier world.txt, puis fermera le tampon hello.txt, enfin ouvrira world.txt comme tampon actuel.
Jianwen W.
la source
27
:savne ferme pas le tampon initial, il le cache. Par défaut, les tampons cachés sont déchargés, mais cela peut être annulé (avec les options 'caché' ou 'bufhidden').
2012
7
Donc, oui ... :savest plus proche du "Enregistrer sous" que j'ai connu.
skytreader
8
De l'aide de Vim: :sav[eas][!] [++opt] {file}Donc, :sav est le raccourcisseur pour :saveas. Alors que, :west le raccourci pour :[range]w[rite][!] [++opt] {file}. Et tout est dans le manuel, juste quelques lignes au dessus / en dessous.
Atcold
23

Après avoir enregistré le nouveau fichier, appuyez sur

Ctrl-6

Ceci est un raccourci vers un autre fichier

SergioAraujo
la source
2
Pour ce que ça vaut, en utilisant nvim 0.1.0 sous OS X 10.10.5, cela nécessite SHIFT-CTRL-6.
Aaron Mendez
shift-ctrl-6 sur une version Homebrew de Vim sur OS X 11.
Mateusz Piotrowski
3

La commande suivante créera une copie dans une nouvelle fenêtre. Vous pouvez donc continuer à voir à la fois le fichier d'origine et le nouveau fichier.

:w {newfilename} | sp #
tivn
la source