Comment enregistrez-vous le fichier sur lequel vous travaillez en tant que nouveau fichier?

10

Il y a des moments où je veux tester les modifications d'un fichier avant d'écraser l'original. Existe-t-il un moyen de sauvegarder un fichier en cours de modification dans un nouveau fichier?

Dom
la source
La réponse hors sujet serait de suggérer un VCS. Par exemple, l'index de git pourrait être utile
johannes

Réponses:

17

Vous pouvez donner un paramètre à la commande :wou :writepour enregistrer dans un autre fichier. Par exemple, pour enregistrer le tampon actuel dans /tmp/data.txt:

:w /tmp/data.txt

Cependant, gardez à l'esprit que cela ne fait pas basculer votre tampon vers cet autre fichier. Donc, si vous continuez à éditer et faites juste :w, cela enregistrera dans le fichier actuel, pas dans l'autre. Pour passer à l'autre fichier, utilisez la :editcommande:

:e /tmp/data.txt

Pour ce faire, enregistrez dans un autre fichier et basculez vers celui-ci, utilisez la :saveascommande:

:sav /tmp/data.txt
janos
la source
5

Vim a un "mode de sauvegarde" qui peut être activé par :set backupou :set patchmode. Dans ce mode, Vim conserve automatiquement une copie de sauvegarde des fichiers que vous écrivez.

Par exemple, si vous émettez :set patchmode=.origet que vous modifiez un fichier existant somefile.txt, alors lorsque vous émettez :wnormalement, Vim conservera une copie de l'ancien fichier sous somefile.txt.origet enregistrera le nouveau contenu sous somefile.txt.

200_success
la source
0

Oui, il existe un moyen. :w new_file_name

Nebril
la source
0

Spécifiez simplement un nouveau chemin de fichier à la :wcommande -:w newfile.foo

Trousse
la source