2009-02-18 11 views
6

Trabajo con muchos archivos de forma remota usando vim y el plugin netrw. También guardo copias de seguridad con marca de tiempo cambiando el &backupext (se encuentra en el documentation).Crear copia de seguridad local al editar archivos remotos a través de netrw en vim

Al trabajar en un archivo remoto (scp: //server//folder/file.txt), me di cuenta de que cuando lo guardo, ni siquiera se realiza una copia de seguridad.

¿Hay alguna manera de que pueda hacer una copia de seguridad de forma automática (según la configuración de copia de seguridad de vim) cada vez que guardo un archivo remoto?

+0

¿Ha intentado establecer 'backupdir' en una carpeta local? –

Respuesta

2

No creo que haya una configuración simple para alternar. Sin embargo, podría intentar escribir algo: agregue su propio autocomando BufWriteCmd para escribir una copia de seguridad. Intenta usar set verbose=9 para la depuración (y para ver cómo lo hace netrw).

1

bien a juzgar por su SCP uso del protocolo, parece que sería mucho más fácil para que usted sea mediante el fuse sshfs, lo que le permitirá tener el comportamiento del sistema de archivos normales que realizar copias en lugar de sólo un push/pull interfaz CRUD Tipo .

+0

La extensión netrw usa scp internamente. He tenido suerte con sshfs. – matpie

+0

¿Puedes publicar tus configuraciones actuales? Además, consulte http://vimdoc.sourceforge.net/htmldoc/options.html#'secure ', también puede deseleccionar cualquiera de las opciones de la zona de pruebas, al menos hasta que la copia de seguridad funcione. – RandomNickName42

2

vez tuve problemas con una variante de este problema: el mantenimiento de registros locales de los cambios que he realizado en un solo árbol fuente en una sola máquina remota .

Mantuve una copia local de todo el árbol de fuentes y un repositorio svn local para versionar los archivos. En lugar de usar netrw y buscar una forma de guardar copias de seguridad localmente, edité todo localmente y necesitaba una forma de propagar automáticamente mis cambios a la máquina remota.

solución 1: use un Autocommand BufWritePost para invocar scp para copiar el archivo después de haber sido escrito. Esto puede funcionar de manera eficiente si el sistema permite que los procesos compartan descriptores de archivos, ya que es posible ejecutar una sesión maestra ssh en la máquina remota y compartir la conexión para las sesiones posteriores. Si es menos afortunado (estaba trabajando en una máquina de Windows en ese momento), el tiempo necesario para negociar una nueva conexión para cada archivo puede ser doloroso

solución 2: para Windows, use WinSCP, que tiene un " mantener el modo "máquina remota actualizada", en el que supervisa un directorio y todos sus subdirectorios para detectar cambios y luego propaga automáticamente los cambios, dado un conjunto de reglas (patrones para ignorar, modo de transferencia para diferentes tipos de archivos, etc.).

0

El plugin netrw evita por completo el comando :write, la única manera de conseguir la funcionalidad 'copia de seguridad atrás es hacerlo por sí mismo utilizando autocommands.

0

Me doy cuenta de que no es una respuesta directa a la pregunta original; sin embargo, lo que hace parece ser un simple VCS disfrazado, entonces ¿por qué no haría los archivos remotos, p. Ej. un repositorio git, luego clonar ese repositorio localmente y presionar los cambios después de la edición?

Cuestiones relacionadas