Créer une sauvegarde locale lors de l'édition des fichiers distants via netrw dans vim
Question
Je travaille avec beaucoup de fichiers à distance en utilisant vim et le plug-in netrw. Je garde aussi des sauvegardes horodatés en changeant la &backupext
(dans la documentation ).
Tout en travaillant dans un fichier distant. (Scp: //server//folder/file.txt), je remarque que lorsque je l'enregistre, une sauvegarde est même pas faite
Y at-il une manière que je peux avoir une sauvegarde automatiquement en local (en fonction des paramètres de sauvegarde vim) chaque fois que j'enregistrer un fichier distant?
La solution
Je ne pense pas qu'il y ait un cadre simple pour basculer. Vous pouvez essayer de scripter quelque chose si - ajouter votre propre BufWriteCmd
autocommande pour écrire une sauvegarde. Essayez d'utiliser set verbose=9
pour le débogage (et voir comment netrw-t-il).
Autres conseils
Une fois, je débattais avec une variante de ce problème: la tenue des registres locaux des changements que j'ai fait à un seul arbre source sur à machine distante.
Je maintenais une copie locale de l'arborescence des sources et un dépôt svn locale à la version des fichiers. Au lieu d'utiliser netrw et la recherche d'un moyen de sauver des sauvegardes localement, je localement et tout edited besoin d'un moyen de propager automatiquement mes modifications à la machine distante.
Solution 1: utiliser un BufWritePost AUTOCOMMAND pour appeler scp pour copier le fichier après qu'il a été écrit. Cela peut fonctionner assez efficacement si le système permet de partager des processus descripteurs de fichiers, car il est possible d'exécuter une session ssh maître à la machine à distance et partager la connexion pour les sessions ultérieures. Si vous êtes moins chanceux (je travaillais sur une machine windows à l'époque), le temps qu'il faut pour négocier une nouvelle connexion pour chaque fichier peut être douloureux
Solution 2: pour Windows, utilisez WinSCP , qui a un mode "garder la machine distante mis à jour", dans lequel il surveille un répertoire et tous ses sous-répertoires pour les changements et les modifications propage automatiquement, étant donné un ensemble de règles (modèles à ignorer, le mode de transfert pour les différents types de fichiers, etc.).
Et bien juger de votre utilisation du protocole scp, il semble que ce serait beaucoup plus facile pour vous d'être en utilisant
Le netrw plug-in contourne complètement la commande :write
, la seule façon d'obtenir la « sauvegarde » fonctionnalité est de retour pour le faire vous-même en utilisant autocommandes.
Je sais que ce n'est pas une réponse directe à la question initiale - cependant, ce que vous faites semble beaucoup comme un simple VCS en déguisement - donc est-il une raison pour laquelle vous ne feriez pas les fichiers distants par exemple un dépôt git, puis cloner ce dépôt local et pousser les changements après l'édition?