7
votes

Rsync sur sauvegarder à vim

Je cherche un moyen de cartographier la commande: w Commande de sorte que lorsque je l'utilise, il va rsync le répertoire actuel et enregistrera le fichier en question. Idéalement, la réponse générée par la commande rsync doit être renvoyée dans Vim, mais pas dans le fichier actuel, mais plutôt comme une info-bulle ou quelque chose.

J'ai réussi à y parvenir à Textmate et je cherche maintenant à commencer à travailler avec VIM. J'ai essayé des choses comme : carte W: w |! Rsync , mais cela ne semble pas fonctionner.


1 commentaires

Utilisez ce plug-in -> Github.com/kenn7/vim-Arsync . Avec le "auto_sync_up" défini sur 1.


3 Réponses :


10
votes

Vous pouvez accrocher à BufwritePost. Je ne me souviens pas de la syntaxe exacte, mais ": il bufwriteporpost " et ": il autocommand " devrait vous aider.

Vous avez configuré un crochet de base comme celui-ci ( Motifs correspondant sur un fichier, vous pouvez donc faire * .Your_extension): xxx

aussi, il devrait y avoir un moyen de le rendre tampon-local.


0 commentaires

6
votes

Si vous souhaitez conserver la copie locale, le BUFWRITEPOST Autocmd suggéré par Viraptor est le meilleur pari, mais en supposant que vous disposez du plug-in NetRW installé (faisant partie des fichiers d'exécution VIM par défaut), vous pouvez également démarrer VIM avec: xxx pré>

et éditer simplement le fichier comme si elle est locale: enregistre mettra à jour le serveur distant. P>

:help rsync


0 commentaires

1
votes

Vous pouvez configurer le tampon autocommandes local pour le faire (voir: Aide Autocmd-Buflocal )

Ceci définit Vim pour invoquer rsync après chaque écriture sur la mémoire tampon. P>

au BufWritePost,FileWritePost <buffer> silent !rsync -a /path/to/somedir/ user@host:/remote/dir/ --exclude=*.sw?
  • Réutiliser une connexion SSH en utilisant Multiplexing de connexion sur une connexion persistante.
  • Envoi de RSYNC dans l'arrière-plan en ajoutant un & code> à la fin de la commande. Ymmv. li> ul> p>


0 commentaires